Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Erläuterung der JavaScript-UTC-Zeitkonvertierungsmethode_Javascript-Fähigkeiten

WBOY
Freigeben: 2016-05-16 15:21:21
Original
2538 Leute haben es durchsucht

1. Vorwort
1. UTC: Universal Time Coordinated, koordinierte Weltzeit.
2. Greenwich Mean Time (GMT)
Die Greenwich Mean Time (GMT) bezieht sich auf die Standardzeit am Royal Greenwich Observatory in einem Vorort von London, da der Nullmeridian als der dort verlaufende Längengrad definiert ist. Theoretisch ist Mittag in der Greenwich Mean Time der Zeitpunkt, an dem die Sonne den Greenwich-Meridian überschreitet. Aufgrund der ungleichmäßigen Bewegung der Erde auf ihrer elliptischen Umlaufbahn kann diese Zeit um 16 Minuten von der tatsächlichen Sonnenzeit abweichen. Die tägliche Rotation der Erde ist etwas unregelmäßig und verlangsamt sich langsam. Daher wird GMT nicht mehr als Standardzeit verwendet. Die heutige Standardzeit – die koordinierte Weltzeit (UTC) – wird von Atomuhren bereitgestellt. Seit dem 5. Februar 1924 sendet das Greenwich Observatory stündlich Informationen zur Zeitanpassung in die Welt. UTC basiert auf der genauen Zeit, die von der Standard-GMT bereitgestellt wird.
GMT (Greenwich Mean Time) – Greenwich Mean Time war Mitte des 19. Jahrhunderts die Referenzzeit des britischen Empire und de facto auch die Weltreferenzzeit. Damals diente sie nach 1840 hauptsächlich dem Eisenbahnwesen. Es verwendet den Längengrad des Greenwich-Observatoriums als 0-Grad-Längengrad und teilt die Welt in 24 Zeitzonen ein. Abgesehen davon, dass es zu bestimmten Zeiten von Fremdenfeindlichkeit, Nationalismus und einigen antibritischen Gefühlen betroffen war, wurde sein Status nie erschüttert.

Der Unterschied zwischen GMT und UTC
Eine GMT-Uhr ist eine Uhr, die die Zeit in zwei oder mehr Zeitzonen anzeigen kann. Unabhängig von der verwendeten Methode besteht die direkteste Möglichkeit zur Anzeige mehrerer Zeitzonen darin, mehrere Uhrwerke in einem Uhrengehäuse zu installieren. Die wirtschaftlichste und gebräuchlichste Methode ist jedoch die Anbringung einer drehbaren Lünette mit 12-Stunden- oder 24-Stunden-Zeitskala. Die Verwendung der drehbaren Lünette ist sehr einfach. Richten Sie einfach die Zahl auf der Lünette aus, die der zweiten Zeitzone entspricht, und drehen Sie die Lünette eine Stunde lang auf den Stundenzeiger des Zifferblatts Geben Sie die kontinentale europäische Zeit an, drehen Sie sie um acht Stunden gegen den Uhrzeigersinn, was der Westküstenzeit der Vereinigten Staaten entspricht.
​​Ob die Wählzeit auf die Heimatzeit oder die Zielzeit eingestellt wird, hängt von den Vorlieben des Benutzers ab. Da die 12-Stunden-Uhr jedoch nicht zwischen Tag und Nacht unterscheiden kann, ist es in der Regel sinnvoller, die Ortszeit einzustellen. Es ereignete sich ein Ereignis, das die Definition von GMT verkomplizierte: Am 1. Januar 1972 wurde UTC (koordinierte Weltzeit) zur neuen universellen Standardzeit.
Der Einfachheit halber wird es normalerweise als koordinierte Weltzeit aufgezeichnet. Auch der Einfachheit halber werden GMT und UTC häufig als gleichwertig behandelt, wenn keine sekundengenaue Genauigkeit erforderlich ist. Obwohl UTC wissenschaftlicher und genauer ist, erfreut sich GMT bei Uhrenspielern und -sammlern immer noch größerer Beliebtheit. Viele Menschen glauben, dass UTC ein Mittel für Paris ist, um zum weltweiten Zeitmesszentrum zu werden. Tatsächlich handelt es sich um ein Zeitmesssystem, das auf der Atomzeit basiert und möglichst nahe an der Weltzeit liegt. Seine Entstehung ist auf das Bedürfnis nach präzisem Timing in der modernen Gesellschaft zurückzuführen.
Die Atomzeit unterscheidet sich von früheren Zeitmesssystemen. Sie ist sehr genau und basiert nicht auf der mittleren Sonnenzeit eines bestimmten Ortes. Wenn die Rotationsgeschwindigkeit der Erde jedoch ungleichmäßig ist, summiert sich der Zeitunterschied zwischen der Atomzeit und der Weltzeit. Daher wird UTC nach einer bestimmten Zeitspanne zum Ausgleich hinzugefügt. Positive oder negative Schaltsekunden werden hinzugefügt. Daher wird es zwischen der koordinierten Weltzeit und der internationalen Atomzeit (TAI) einen Unterschied von mehreren ganzen Sekunden geben. Für die Entscheidung, wann Schaltsekunden einbezogen werden, ist das Internationale Zentralbüro für Erdrotationsangelegenheiten (IERS) in Paris zuständig.

Die Pekinger Zeit unterscheidet sich um 8 Zeitzonen von der Greenwich-Zeit oder der UTC-Zeit. Peking, Shanghai und Chongqing liegen in der 8. Ostzone, daher beträgt die Pekinger Zeit 2013-1-1 0:00:00, umgerechnet in UTC-Zeit : Di, 1. Jan. 00:00:00 UTC 0800 2013, 8 Stunden später.
2. Umrechnung von Ortszeit in UTC-Zeit
Umrechnung von Ortszeit in UTC-Zeit, die Schritte sind wie folgt:

1. String-Datum in Datumsdatentyp konvertieren
Wenn es sich bereits um einen Datumstyp handelt, können Sie diesen Schritt weglassen.

Kann mit der Funktion im Beispiel unten konvertiert werden.
2. UTC-Datumsdaten abrufen
Einschließlich Jahr, Monat, Tag, Stunde, Minute und Sekunde, verwenden Sie zum Abrufen die Methode getUTC***().

Erhalten Sie das Jahr: var y = date.getUTCFulYear(); Holen Sie sich den Monat: var m = date.getUTCMonth();
Holen Sie sich das Datum: var d = date.getUTCDate();
Holen Sie sich die Stunde: var h= date.getUTCHours();
Minuten abrufen: var M = date.getUTCMinutes();
Sekunden abrufen: var s = date.getUTCSeconds();

Das Datum hier sind Datumsdaten.

Hinweis: Bei der Verwendung von Methoden ohne UTC gibt es hier ein Problem (zum Beispiel: date.getFullYear, date.getMonth). Bei der Durchführung der nächsten Konvertierung tritt ein Ergebnisfehler auf.

3. Verwenden Sie die Funktion Date.UTC(), um zu konvertieren
Konvertieren Sie die in Schritt 2 erhaltenen Datumsdaten in UTC-Zeit (eigentlich Millisekunden seit 1700)

var utc = Date.UTC(y,m,d,h,M,s);

这里,y、m、d、h、M、s分别代表步骤2中获取的年、月、日、时、分、秒数值。

三、UTC日期到本地日期的转换
UTC日期到本地日期转换则要简单得多,先将UTC时间转换为日期格式,然后再转换为本地日期格式,例如:

var date2 = new Date(utc);

var localeString = date2.toLocaleString();

Nach dem Login kopieren

或只要日期

var localeDateString = date2.toLocaleDateString();

Nach dem Login kopieren

或只要时间

var localeTimeString = date2.toLocaleTimeString();

Nach dem Login kopieren

实例:

//日期加减计算 
function dateadd(sdate, delta, ymdh){ 
 if(!sdate ) return; 
  
 if(typeof sdate == 'object') sdate = sdate.toLocaleString(); 
 
 /(\d{4})[\D](\d{1,2})[\D](\d{1,2})[\D]?\s(\d{1,2}):(\d{1,2}):(\d{1,2})/.exec(sdate); 
 var a = [0,0,0,0]; 
  
 switch(ymdh){ 
  case 'y': 
   a = [delta, -1, 0, 0]; 
   break; 
  case 'm': 
   a=[0, delta-1, 0, 0]; 
   break; 
  case 'H': 
   a=[0, -1, 0, delta]; 
   break;  
  default: 
   a = [0, -1, delta, 0]; 
   break;   
 } 
  
 println('date:' + (parseInt(RegExp.$1)+ a[0]) + '-'+ (parseInt(RegExp.$2)+a[1]) +'-' + (parseInt(RegExp.$3)+a[2]) 
  + ' ' + (parseInt(RegExp.$4)+a[3]) +':' + RegExp.$5 + ':' +RegExp.$6); 
  
 return new Date(parseInt(RegExp.$1)+ a[0], parseInt(RegExp.$2)+a[1], parseInt(RegExp.$3)+a[2], parseInt(RegExp.$4)+a[3], RegExp.$5,RegExp.$6); 
} 
 
 //UTC转换 
 println('---------------------------------------------'); 
 var sdate='2013-01-01 00:00:00.0'; 
 var d = dateadd(sdate,0); 
 var d2 = Date.UTC(d.getUTCFullYear(),d.getUTCMonth() ,d.getUTCDate(),d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds()); 
 println('原日期:' + sdate); 
 println('d2:' + d2); 
 println('d3:' + new Date(d2)); 
 println('d4:' + new Date(d2).toLocaleString()); 
 println('d5:' + d2.toLocaleString()); 
Nach dem Login kopieren

测试结果:

---------------------------------------------
date:2013-0-1 0:00:00
原日期:2013-01-01 00:00:00.0
d2:1356969600000
d3:Tue Jan 1 00:00:00 UTC+0800 2013
d4:2013年1月1日 0:00:00
d5:1,356,969,600,000.00

Nach dem Login kopieren

可以看到UTC时间实际上是一串以自1970年以来的毫秒数表示的长数字。

以上就是本文的全部内容,希望对大家的学习有所帮助。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!