Der Grund dafür ist, dass Monate 0-11
sind, nicht 1-12
. (Denken Sie daran, als Elemente in einem Array. var months = ["January", "February", "March"...]
)
MDN Docs on Date.prototype.getMonth()
Darüber hinaus erhalten Sie in einer Zeitzone mehr als 5 Stunden hinter GMT wahrscheinlich sind. (Da dieser Zeitstempel speziell mit 05:00:00 am 1. August 2015 übereinstimmt) wird das JavaScript-Objekt date versuchen, Zeiten auf Ihre aktuelle Zeitzone zu lokalisieren. (In meinem Fall GMT-7
) Also, getMonth()
für mich verwenden, wird 6
anstatt 7
zurückgeben. Wenn Lokalisierung das gewünschte Verhalten ist, dann ist das in Ordnung. Andernfalls, wenn es sich um eine UTC-Zeit handelt und Sie die spezifische UTC-Darstellung abrufen möchten, sollten Sie stattdessen getUTCMonth()
aufrufen oder den Zeitzonen-Offset anderweitig kompensieren.
Monate sind null indiziert. –
Verwenden Sie 'parseInt (" 1438405200000 ", 10)' –
Mögliches Duplikat von [Javascript-Datum gibt einen falschen Monat zurück, wenn der Tag 01 ist] (http://stackoverflow.com/questions/25288781/javascript-date-returns-wrong-month- Wenn-Tag-ist-01) –