Ich muss in der Lage sein, 1, 2, 5 oder 10 Tage zum heutigen Datum mit jQuery hinzuzufügen.
Hervorragend... vor allem die Art der Formatierung, die in meinem Fall perfekt funktioniert, auch wenn sie vielleicht keine allgemeine Lösung ist.
Ich muss in der Lage sein, 1, 2, 5 oder 10 Tage zum heutigen Datum mit jQuery hinzuzufügen.
Hervorragend... vor allem die Art der Formatierung, die in meinem Fall perfekt funktioniert, auch wenn sie vielleicht keine allgemeine Lösung ist.
Vom Parsen von Datumsstrings mit dem Date-Konstruktor (und Date.parse, sie sind äquivalent) wird aufgrund von Browserunterschieden und Inkonsistenzen dringend abgeraten. (aus der Mozilla-Referenz)
Die Prototyp-Lösung von Krishna Chytanya ist sehr schön, bedarf aber einer kleinen, aber wichtigen Verbesserung. Der Parameter days muss als Integer geparst werden, um seltsame Berechnungen zu vermeiden, wenn days ein String wie "1" ist. (Ich habe mehrere Stunden gebraucht, um herauszufinden, was in meiner Anwendung falsch lief).
Date.prototype.addDays = function(days) {
this.setDate(this.getDate() + parseInt(days));
return this;
};
Auch wenn Sie diese Prototyp-Funktion nicht verwenden: Achten Sie bei der Verwendung von setDate() immer darauf, dass Sie eine Ganzzahl verwenden.
Ich hatte die Prototyp-Funktion selbst geschrieben, aber sie funktionierte einfach nicht, wenn ich Tage hinzufügte, und ich konnte es nicht herausfinden. Das Hinzufügen von parseInt löste dieses Problem sofort. Wie sind Sie darauf gekommen, das zu verwenden? Daran hätte ich in einer Million Jahren nicht gedacht.
Wenn die Zeiten im Datum nicht benötigt werden, können Sie einfach die Methoden des Datumsobjekts verwenden, um den Monat, das Jahr und den Tag zu extrahieren und "n" Tage zum Tagsteil hinzuzufügen.
var n=5; //number of days to add.
var today=new Date(); //Today's Date
var requiredDate=new Date(today.getFullYear(),today.getMonth(),today.getDate()+n)
Ref: Mozilla Javascript GetDate
Bearbeiten: Ref: Mozilla JavaScript Datum
Wenn Sie eine getDate()-Funktion auf requiredDate ausführen, ist der zurückgegebene Wert falsch.
Nicht wirklich @CyrilleArmanger : Schau mal hier jsfiddle.net/sahiljambhekar/6u7caake . Auch auf die Variable "requiredDate", wenn Sie die getDate()-Methode ausführen, dann würde es den Tag des Monats zurückgeben, die in richtig kommt zu. Also bitte, entfernen Sie die downvote als es funktioniert Code
Die hier akzeptierte Antwort lieferte mir unvorhersehbare Ergebnisse, wobei manchmal seltsamerweise Monate und Jahre hinzugefügt wurden.
Die zuverlässigste Methode, die ich finden konnte, wurde hier gefunden Hinzufügen von Tagen zum Javascript Date-Objekt, und auch Inkrementieren des Monats
var dayOffset = 20;
var millisecondOffset = dayOffset * 24 * 60 * 60 * 1000;
december.setTime(december.getTime() + millisecondOffset);
EDIT: Auch wenn es bei einigen Leuten funktioniert hat, glaube ich nicht, dass es ganz korrekt ist. Ich würde empfehlen, eine populärere Antwort zu wählen oder etwas zu verwenden wie http://momentjs.com/
An Tagen, an denen die Sommerzeit umgestellt wird, funktioniert das nicht. Manche Tage haben keine 24 Stunden pro Tag, manche 23, manche 25. Ich weiß nicht, welche unvorhersehbaren Ergebnisse Sie erhalten haben, aber es ist in der Regel am besten, wenn Sie der Eigenschaft day(date) 1 hinzufügen und die Bibliothek den Rest erledigen lassen.
Wenn Sie nur daran interessiert sind, welche Tag es ist könnte diese Lösung verwenden, stellen Sie sicher, dass die Zeit etwas wie 12:00 ist. Die Uhrzeit des Ergebnisses müssen Sie zwar ignorieren, aber der Tag sollte korrekt sein.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.