javascript - Le problème de la conversion d'une chaîne JS en horodatage avec une différence de 8 heures
怪我咯
怪我咯 2017-05-19 10:18:39
0
3
790

var time = new Date('2014-07-03'); //Jeudi 3 juillet 2014 08:00:00 GMT+0800 (heure standard de la Chine)
Date.parse(time);


var time = new Date('2014-7-3'); //Jeudi 3 juillet 2014 00:00:00 GMT+0800 (heure standard de Chine)

Date.parse(time);

Comment se fait-il qu'il reste 8 heures de plus après avoir terminé 0 ?
怪我咯
怪我咯

走同样的路,发现不同的人生

répondre à tous(3)
黄舟

Selon ECMA-262 ed 3, l'analyse temporelle peut être gérée différemment.

Dans ES5, les chaînes au format ISO 8601, si aucun fuseau horaire n'est spécifié, sont analysées en UTC, et il n'y a pas de comportement unifié pour le traitement des chaînes non ISO 8601.

Dans ES2015, les chaînes sans fuseau horaire spécifié sont analysées à l'heure locale (en fonction de l'heure du système).

Si vous souhaitez traiter toutes les chaînes sous cette forme en heure locale, vous pouvez écrire une fonction vous-même :

function parseISOLocal (s) {
  var b = s.split(/\D/);
  return new Date(b[0], b[1]-1, b[2]);
}
某草草

J'ai aussi vu ce problème il y a quelques temps.

Si vous changez le format de date en "02/07/2014", il sera normalement converti à 0 heures.

Référence : Xuanfengge http://www.xuanfengge.com/js-...

小葫芦

C'est normal sous Firefox

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal