Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée de la méthode de conversion de l'heure UTC JavaScript_compétences javascript

WBOY
Libérer: 2016-05-16 15:21:21
original
2537 Les gens l'ont consulté

1. Avant-propos
1. UTC : Temps universel coordonné, temps universel coordonné.
2. Heure moyenne de Greenwich (GMT)
L'heure moyenne de Greenwich (GMT) fait référence à l'heure standard de l'Observatoire royal de Greenwich, dans la banlieue de Londres, car le méridien d'origine est défini comme la longitude qui y passe. Théoriquement, midi dans le temps moyen de Greenwich correspond au moment où le soleil traverse le méridien de Greenwich. En raison du mouvement irrégulier de la Terre sur son orbite elliptique, cette heure peut différer de 16 minutes de l’heure solaire réelle. La rotation quotidienne de la Terre est quelque peu irrégulière et ralentit lentement. Par conséquent, l’heure GMT n’est plus utilisée comme heure standard. L’heure standard d’aujourd’hui – Temps universel coordonné (UTC) – est fournie par des horloges atomiques. Depuis le 5 février 1924, l'Observatoire de Greenwich envoie au monde toutes les heures des informations sur le réglage de l'heure. L'UTC est basé sur l'heure précise fournie par le GMT standard.
GMT (Greenwich Mean Time) - Greenwich Mean Time était l'heure de référence de l'Empire britannique au milieu du XIXe siècle et était également l'heure de référence mondiale de facto. A cette époque, il desservait principalement le système ferroviaire après 1840. Il utilise la longitude de l'Observatoire de Greenwich comme longitude 0 degré et divise le monde en 24 fuseaux horaires. Sauf à être affecté par la xénophobie, le nationalisme et certains sentiments anti-britanniques à certaines heures, son statut n'a jamais été ébranlé.

La différence entre GMT et UTC
Une montre GMT est une montre qui peut afficher l'heure dans deux ou plusieurs fuseaux horaires. Quelle que soit la méthode utilisée, le moyen le plus direct d’afficher plusieurs fuseaux horaires consiste à installer plusieurs mouvements dans un seul boîtier de montre. Cependant, la méthode la plus économique et la plus courante consiste à fixer une lunette tournante avec une échelle de temps de 12 heures ou de 24 heures. La méthode d'utilisation de la lunette tournante est très simple. Il suffit d'aligner le numéro sur la lunette correspondant au deuxième fuseau horaire avec l'aiguille des heures du cadran. Si l'heure du cadran est l'heure de Londres, tournez la lunette dans le sens des aiguilles d'une montre pendant une heure pour. indiquez l'heure de l'Europe continentale, tournez huit heures dans le sens inverse des aiguilles d'une montre, ce qui correspond à l'heure de la côte ouest des États-Unis.
​​Le fait que l'heure du cadran soit réglée sur l'heure du domicile ou sur l'heure de destination dépend des préférences de l'utilisateur, mais comme la montre de 12 heures ne peut pas faire la distinction entre le jour et la nuit, il est généralement plus raisonnable de régler l'heure locale. Un événement s'est produit qui a compliqué la définition du GMT : le 1er janvier 1972, l'UTC (Temps Universel Coordonné) est devenu le nouveau temps standard universel.
Pour plus de commodité, il est généralement enregistré en temps universel coordonné. Également pour des raisons de commodité, GMT et UTC sont souvent traités comme équivalents lorsqu'une précision à la seconde près n'est pas requise. Bien que l’heure UTC soit plus scientifique et plus précise, l’heure GMT reste plus populaire parmi les horlogers et les collectionneurs. Beaucoup pensent que l'UTC est un moyen pour Paris de devenir le centre mondial du chronométrage. En fait, il s’agit d’un système de mesure du temps basé sur le temps atomique et aussi proche que possible du temps universel. Son émergence est due à la nécessité d’un timing précis dans la société moderne.
Le temps atomique est différent des systèmes de chronométrage précédents. Il est très précis et n'est pas basé sur le temps solaire moyen d'un certain endroit. Cependant, lorsque la vitesse de rotation de la Terre est inégale, la différence de temps entre le temps atomique et le temps universel s'accumule avec le temps. Par conséquent, l'UTC sera en secondes intercalaires positives ou négatives ajoutées après un certain temps pour compenser. Il y aura donc un certain nombre de secondes entières de différence entre le temps universel coordonné et le temps atomique international (TAI). Le Bureau central international pour les affaires de rotation terrestre (IERS) à Paris est chargé de décider quand inclure les secondes intercalaires.

L'heure de Pékin est 8 fuseaux horaires différents de l'heure de Greenwich ou de l'heure UTC. Pékin, Shanghai et Chongqing sont situés dans le 8ème fuseau est, donc l'heure de Pékin 2013-1-1 0:00:00, convertie en heure UTC est. : Mardi 1er janvier 00 :00:00 UTC 0800 2013, 8 heures plus tard.
2. Conversion de l'heure locale en heure UTC
Conversion de l'heure locale en heure UTC, les étapes sont les suivantes :

1. Convertir la date de chaîne en type de données de date
S'il s'agit déjà d'un type de date, vous pouvez omettre cette étape.

Peut être converti à l'aide de la fonction dans l'exemple ci-dessous.
2. Obtenez les données de date UTC
Y compris l'année, le mois, le jour, l'heure, les minutes et les secondes, utilisez la méthode getUTC***() pour obtenir.

Obtenir l'année : var y = date.getUTCFulYear();
Obtenez le mois : var m = date.getUTCMonth();
Obtenez la date : var d = date.getUTCDate();
Obtenez l'heure : var h= date.getUTCHours();
Obtenir des minutes : var M = date.getUTCMinutes();
Obtenir les secondes : var s = date.getUTCSeconds();

La date ici est une donnée de type date.

Remarque : il y a un problème avec l'utilisation de méthodes sans UTC ici (par exemple : date.getFullYear, date.getMonth). Lors de la prochaine conversion, une erreur de résultat se produira.

3. Utilisez la fonction Date.UTC() pour convertir
Convertissez les données de date obtenues à l'étape 2 en heure UTC (en fait, en millisecondes depuis 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();

Copier après la connexion

或只要日期

var localeDateString = date2.toLocaleDateString();

Copier après la connexion

或只要时间

var localeTimeString = date2.toLocaleTimeString();

Copier après la connexion

实例:

//日期加减计算 
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()); 
Copier après la connexion

测试结果:

---------------------------------------------
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

Copier après la connexion

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

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!