2010-05-17 14 views
12

Ich habe ein Eingabefeld, das mithilfe des JavaScript Date-Objekts um einen Monat erhöht werden muss. Unten ist ein Beispiel für eine Anstrengung, die ich unternommen habe, um den Monat zu erhöhen. Das Problem damit scheint zu sein, dass es 0 als Januar anzeigt und das Jahr nicht erhöht.Hinzufügen eines Monats zu einem Datum in JavaScript

nDate.setDate(nDate.getDate()); 
inputBox1.value = (nDate.getMonth() + 1) + "/" + (nDate.getDate()) + "/" + (nDate.getFullYear()); 
+4

Frage: Was passiert, wenn dieses Datum 31.01.2010 ist? Möchten Sie den 28.01.2010 oder 03.03.2010 sehen? –

+1

Voting wieder zu öffnen, da es anscheinend eine echte Frage ist - 30k Ansichten, vernünftige Antwort mit 24 upvotes .... – Ben

+0

@ben Ich denke, Ihr Kommentar geht davon aus, dass der Monat 30 Tage hat? – supersan

Antwort

42
// assumes document.form1.textbox1.value is a parseable date 
var d = new Date(document.form1.textbox1.value); 
d.setMonth(d.getMonth() + 1); 
document.form1.textbox1.value = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear(); 

Der eingestellte Monat sollte entfernungssicher sein, wie beschrieben here.

+1

Was ist Subtrahieren eines Monats? Es ist eine völlig andere Logik ... –

-5

Sie werden den Text aus dem Textfeld erhalten müssen, die Sie dann zu dem Date() Konstruktor übergeben können:

var d = new Date(text);

Dann formatieren Sie die Datumszeichenfolge:

var str = d.getDate(), d.getMonth() + 1, d.getFullYear()

Und stellen Sie die Testbox auf diesen Wert

+1

was ist mit dezember -> januar – leora

+0

Hmm, ich dachte es wäre gerollt, aber vielleicht musst du das explizit überprüfen. Oder es könnte einen besseren Weg ganz geben –

+0

Ich verstehe nicht Ihre Zeile, wie es ein Datum erstellen, es scheint, als ob es etwas wie 30, 4, 1002 – leora

Verwandte Themen