Moment.js 2 chaînes de date différentes lorsque j'analyse en utilisant moment donne la même valeur
-
23-12-2019 - |
Question
J'analyse 2 chaînes de date différentes
var d1 = '2014-02-01T00:00:00.000+0530'
var d2 = '2014-02-23T00:00:00.000+0530'
quand je les analyse en utilisant le moment
alert(moment(d1, 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"').toDate());
alert(moment(d2, 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"').toDate());
les deux impriment le samedi 1er février 2014 xxxxx
Qu'est-ce qui va pas avec ça??
voici le lien vers le violon que j'ai créé
La solution
Je pense que votre chaîne de formatage momentanée vous pose problème.Si je supprime cela, les dates ne s'impriment pas de la même manière.
MODIFIER:Le problème spécifique est que vous utilisez dd
pour la journée, au lieu de DD
. http://momentjs.com/docs/#/parsing/string-format/
Voici votre violon réparé :http://jsfiddle.net/K5ub8/9/
Cependant, je ne suis pas sûr à 100 % des fractions de seconde, je crois que c'est le cas. SSS
au lieu de fffffff
mais je testerais cela si vous avez besoin de répondre à des fractions de secondes.
Je dois mentionner que si vous le reconvertissez de toute façon en un objet de date JavaScript avec toDate()
, alors vous n'avez pas vraiment besoin du paramètre de formatage moment car la date sera formatée au format JSON Date.
Je me demande pourquoi vous voudriez générer une date au format moment, puis la reconvertir en JavaScript, une pratique normale pourrait être de recevoir une date au format JavaScript, puis de créer un objet moment que vous pouvez utiliser pour effectuer des calculs et l'afficher dans une manière agréable et conviviale.
Autres conseils
Réponse simple :votre format était un peu faux.
Après avoir peaufiné le format pour qu'il soit 'YYYY-MM-DDTHH:mm:ss.SSSZZ'
plutôt que 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"'
ça a très bien fonctionné.Lorsque vous essayez de déboguer des problèmes comme celui-ci, il est toujours bon de conserver le format dans une variable distincte afin de pouvoir utiliser le même format que celui que vous essayez d'analyser pour afficher ce que vous obtenez.Si tu l'avais fait, tu l'aurais remarqué 'YYYY-MM-dd"T"HH:mm:ss.fffffff"Z"'
a été gâché à cause de l'impression 2014-01-Fr"T"11:32:03.fffffff"-08:00"
.Ce qui n’est évidemment pas tout à fait vrai.