Ich habe dies bei der Arbeit an einem Kalender gefunden, der bestimmte Datumsbereiche deaktivieren muss. Es ist manchmal um eins aus.
Fortpflanzen:
moment().isBefore(moment())
false
, zeigt aber manchmal true
. Dies scheint isAfter
Methode Es sieht so aus, als ob sich isBefore korrekt verhält, aber irgendwie werden die beiden moment () -Objekte manchmal erstellt, wobei das zweite das frühere Datum hat. Dies ist die Prüfung, die unterschiedliche Ergebnisse liefert:
https://github.com/moment/moment/blob/develop/src/lib/moment/compare.js#L26
Ich verstehe, danke, dass Sie sich darum gekümmert haben und sich bei mir gemeldet haben!
Ich denke, es hängt von der genauen Millisekunde ab, in der die Momente erzeugt werden. Die Tatsache, dass die zweite jemals nach der ersten erstellt wird, fühlt sich wie ein Browser-Fehler an.
Zu diesem Thema wird hier ausführlicher gesprochen: https://github.com/moment/moment/issues/2697
Die Tatsache, dass die zweite jemals nach der ersten erstellt wird, fühlt sich wie ein Browser-Fehler an.
Sieht gut aus für mich.
Vergleichen Sie moment().isBefore(moment())
mit:
somethingThrowingAnError().method(somethingWithSideEffects())
Oder auch:
somethingReturningNull().method(somethingWithSideEffects())
Sie würden nicht erwarten oder wollen, dass somethingWithSideEffects()
aufgerufen wird, wenn ein Fehler ausgelöst wird / die Methode möglicherweise nicht aufgerufen werden kann.
Alles, was zu sagen ist: first
_ muss vor second
aufgerufen werden:
first().method(second())
@ispacowanguitar Manchmal werden die Momente in derselben Millisekunde erstellt,