2013-09-04 10 views
48

Ich verwende einen Datepicker, der ein Datum im Format gibt Sun Jul 7 00:00:00 EDT 2013. Obwohl der Monat Juli sagt, wenn ich einen getMonth mache, gibt es mir die vorheriger Monat.GetMonth in Javascript gibt letzten Monat

var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013"); 
d1.getMonth());//gives 6 instead of 7 

Was mache ich falsch?

+7

Ja ... es ist [null indiziert] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth). – Emissary

+1

6 ist Juli 0 basiert –

+2

Verlieren Sie nicht Ihre Meinung mit Daten in Javascript. Verwenden Sie Moment.js, wenn Sie können –

Antwort

93

Weil getmonth() von 0 beginnen. Sie möchten d1.getMonth() + 1 haben, um zu erreichen, was Sie wollen.

+48

Ich muss sagen, einen Monat Nummer Null indiziert zu haben ist die dümmste Sache, die ich in einer Weile gesehen habe. ' – LarryBud

+1

warum würde jemand es 0 basierend wollen, wenn getDate gibt 1-31? –

+2

Höchstwahrscheinlich müssen Sie 'd1.getMonth() <12 tun? d1.getMonth() + 1: 1' - sonst wäre Dezember 13, nicht? – DanielKhan

8

getMonth() Funktion ist Null indiziert basiert. Sie müssen d1.getMonth() + 1

Vor kurzem habe ich Moment.js Bibliothek verwendet und nie zurückgeschaut. Versuch es!

Verwandte Themen