"2017-01-01" suit la norme ISO ES5 Date Heure format de Chaîne de caractères (simplification de la norme ISO 8601 Format Étendu), et il est donc dans l'heure UTC, qui est de 8h en Chine. Toutes les autres chaînes sont analysées comme l'heure locale en Chrome1.
1 Pertinentes du code source de Chrome: https://cs.chromium.org/chromium/src/v8/src/dateparser-inl.h?type=cs&l=16
Date de l'analyse en Chrome suit la norme ES5 règles ainsi que ces règles supplémentaires:
- Tout mot inconnu avant, le premier nombre est ignoré.
- Entre parenthèses le texte est ignoré.
- Un nombre non signé suivie par
:
est une valeur de temps, et est ajouté à l' TimeComposer
. Un numéro de suivi par ::
ajoute un deuxième zéro. Un numéro de suivi par .
est aussi un temps et doit être suivie par millisecondes. Un autre numéro est un composant de date et est ajouté à l' DayComposer
.
- Un nom de mois (ou vraiment: tout mot ayant le même trois premières lettres d'un nom de mois) est comptabilisé comme un mois nommé dans l'
Day
compositeur.
- Un mot reconnaissable comme un fuseau horaire est inscrite en tant que telle, est -
(+|-)(hhmm|hh:)
.
- Héritage dates de ne pas accorder plus de signes (
+
ou -
) ou inégalée )
après un certain nombre a été lu (avant, le premier nombre, des ordures est autorisé).
- Toutes les chaînes que satisfaire l'ES5 règles et les règles ci-dessus seront analysés à l'aide de ES5 règles. Cela signifie
"1970-01-01"
sera en heure UTC-zone non en heure locale.
Qu'est-ce que cela signifie?
Notons d'abord que "2017-01-01" est analysée en temps UTC, parce que c'est une "date" de la chaîne au lieu d'une "date-heure" de la chaîne, et il correspond à l'ES5 définition de "date" de la chaîne. Si le temps est attaché, puis il va suivre la norme ISO et de l'analyser en heure locale.
Exemples:
-
2017-01-01
- Jan 1, en 2017, à l'heure UTC
-
2017-01-01T00:00
- Jan 1, en 2017, heure locale
-
2017-1-1
- Jan 1, en 2017, heure locale
-
2017-(hello)01-01
- Jan 1, en 2017, heure locale
-
may 2017-01-01
- 1er mai 2017, heure locale
-
mayoooo 2017-01-01
- 1er mai 2017, heure locale
-
"jan2017feb-mar01apr-may01jun"
- Jun 1, en 2017, heure locale