Maison  >  Questions et réponses  >  le corps du texte

javascript - Le problème de la conversion d'une chaîne JS en horodatage avec une différence de 8 heures

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 ?
怪我咯怪我咯2687 Il y a quelques jours738

répondre à tous(3)je répondrai

  • 黄舟

    黄舟2017-05-19 10:20:39

    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]);
    }

    répondre
    0
  • 某草草

    某草草2017-05-19 10:20:39

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

    répondre
    0
  • 高洛峰

    高洛峰2017-05-19 10:20:39

    C'est normal sous Firefox

    répondre
    0
  • Annulerrépondre