Ich muss ein JS-Datum für Jahr = 2014 und Monat = 9 (September 2014) berechnen.
Ich habe es versucht:
var moment = require('moment');
var startDate = moment( year+'-'+month+'-'+01 + ' 00:00:00' );
var endDate = startDate.endOf('month');
console.log(startDate.toDate());
console.log(endDate.toDate());
Beide Protokolle zeigen:
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
Enddatum ist korrekt, aber ... warum ist das Startdatum nicht?
javascript
momentjs
Fabio B.
quelle
quelle
moment
ist idempotent, so dass Sie auchendDate = moment(starDate).endOf("month")
^ verwenden können. ^moment(<value>)
. Das Beispiel wurde aktualisiert, um einige der kürzeren Funktionen zu verwenden.add(-1,"month")
funktioniert nicht, wenn es Januar ist und Sie den Monat des letzten Jahres erhalten möchten.Sie können dies direkt für das End- oder Startdatum des Monats verwenden
Sie können das Format ändern, indem Sie ein neues Format definieren
quelle
Wenn Sie verwenden
.endOf()
, mutieren Sie das Objekt, auf das es aufgerufen wird, und werden sostartDate
zum 30. SeptemberSie sollten verwenden
.clone()
, um eine Kopie davon zu erstellen, anstatt sie zu ändernquelle
Versuchen Sie den folgenden Code:
quelle
Denken Sie nicht wirklich, dass es eine direkte Methode gibt, um den letzten Tag zu erreichen, aber Sie könnten so etwas tun:
quelle
Ihr Startdatum ist der erste Tag des Monats. In diesem Fall können wir verwenden
Hoffe das hilft!!
quelle
doc
quelle
quelle
Bitte beachten Sie, dass .clone () in bestimmten Momenten wichtig ist, da es sonst den Wert überschreibt. Es scheint in Ihrem Fall.
Es ist allgemeiner, eine Reihe von Daten zu erhalten, die zwischen den Daten liegen.
quelle
Der folgende Code sollte funktionieren:
quelle
Versuchen Sie den folgenden Code:
quelle