Moment.js problème d'ajout de jours avec l'heure avancée
Dans Moment.js j'ai le problème suivant:
1.J'ai créer un moment date:
var m = moment(new Date(2014, 9, 18, 0, 0, 0));
2.Si je l'appelle fonction toString:
m.toString() //"Sat Oct 18 2014 00:00:00 GMT-0300"
3.Maintenant, j'ajoute un jour, j'ai de la prochaine sortie:
m.add("days",1).toString() //"Sat Oct 18 2014 00:00:00 GMT-0300"
Ce que j'ai 18 ans encore? Momentjs devrait changer la date.
EDIT: Problème dans Chrome 32.0.1700.76 m
EDIT2: MomentJs version 2.5.1
EDIT3: Fuseau horaire UTC-3
source d'informationauteur earnaz
Vous devez vous connecter pour publier un commentaire.
J'ai regardé le code et d'abord je n'ai pas les mêmes résultats. Cependant quand j'ai changé le fuseau horaire pour Brésil (GMT-03:00) - Sao Paulo, j'ai obtenu le même résultat. C'est clairement un bug et a maintenant été attribuée à V8 et signalés.
Plunker
J'ai soumis un bug: https://github.com/moment/moment/issues/1440
Mise à jour
Moment.js n'est pas responsable de ce bug. Il a été suivi d'un bug dans le moteur V8, le moteur javascript utilisé par Chrome et Nœud). J'ai déposé un bug avec la V8 que vous pouvez suivre ici: https://code.google.com/p/v8/issues/detail?id=3116
Voici le travail que Isaac Cambron fait pour le retrouver.
OK, reproduit à présent dans les deux Ubuntu et OSX (j'ai été en utilisant une autre ville Brésilienne dans mes tests avant). Je suis l'aide d'un Noeud, pas de Chrome, mais pour nos fins, V8 est V8.
Le problème est que le Moment fait essentiellement:
Puis il fixe les heures de zéro. Depuis V8 bizarrement définit le temps de retard sur 18 Oct même si nous avons expressément demandé de le configurer pour Oct 19, la réponse est erroné. C'est d'autant plus bizarre, parce que la transition d'heure d'été ici, c'est un saut vers l'avant, ce qui signifie que tout ce qu'il devrait être de 1:00, pas 23:00 le jour précédent.
En fait, il n'a même ceci:
Selon cette jsFiddle, ce que vous faites /vous devriez/travailler. Quel navigateur êtes-vous tester?
http://jsfiddle.net/mori57/Nq3KD/
Simplement, vous pouvez utiliser le code ci-dessous pour obtenir la prochaine date dans
moment.js
Pour plus de détails , regardez le lien ci-dessous
momentjs docs
C'est un vieux post, mais je suis arrivé ici via Google avec le même problème. Ce que j'ai utilise le code suivant, c'est peut-être utile pour quelqu'un d'autre:
Vous devez passer le nombre d'abord, puis les "jours"
Testé en Version Chrome 50.0.2661.37 bêta-m (64-bit)
Remarque générale pour éviter les questions de ce genre (comme vous pouvez le voir, ils ne arriver, et sont parfois passe en raison d'un bug lié au navigateur): si vous représentez une jour à l'aide de
Date
objet, vous pouvez simplement ont une convention à passer midi (12h00) au lieu de minuit (00h00) auDate
constructeur, puis dans la fonction qui prépare date pour l'affichage, la couper.Les bugs dans les navigateurs, et des questions de l'heure d'été habituellement maj le temps d'une heure (le temps passe en arrière à partir de 00h00 à 23h00 le jour précédent). Si vous utilisez uniquement le midi, il ne devrait pas se produire en cas de bugs similaires, le temps va aller retour à partir de 12h00 jusqu'à 11h00, par exemple, mais le jour ne change pas).
(Bien sûr, vous devez vous rappeler que la date est midi lorsque vous la transmettre autour de, parfois, il peut ne pas être bon)
Par exemple, ont un oeil à ce bug dans YUI bibliothèque qui nous ont été à l'aide de dans sur de nos applications de l'entreprise:
https://github.com/yui/yui2/pull/15
Ce qui s'est passé que dans Firefox, uniquement sur Windows, seulement, en particulier, fuseau horaire, et que dans le mois en question. Mais c'est arrivé.