405 Stimmen

Wie kann man die Anzahl der Tage zum heutigen Datum hinzufügen?

Ich muss in der Lage sein, 1, 2, 5 oder 10 Tage zum heutigen Datum mit jQuery hinzuzufügen.

35voto

Tomas Šivickas Punkte 859

Reine JS-Lösung, mit Datum formatiert YYYY-mm-dd Format

var someDate = new Date('2014-05-14');
someDate.setDate(someDate.getDate() + 15); //number  of days to add, e.x. 15 days
var dateFormated = someDate.toISOString().substr(0,10);
console.log(dateFormated);

1 Stimmen

Hervorragend... vor allem die Art der Formatierung, die in meinem Fall perfekt funktioniert, auch wenn sie vielleicht keine allgemeine Lösung ist.

0 Stimmen

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)

1 Stimmen

Wenn der Tageswert dynamisch ist, erzeugt Ihr Code ein falsches Datum, bitte überprüfen Sie das.

32voto

Erik Aderhold Punkte 448

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.

1 Stimmen

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.

19voto

Sahil J Punkte 645

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

1 Stimmen

Wenn Sie eine getDate()-Funktion auf requiredDate ausführen, ist der zurückgegebene Wert falsch.

1 Stimmen

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

4 Stimmen

Was passiert, wenn today.getDate() === 30?

16voto

Mulhoon Punkte 1832

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/


1 Stimmen

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.

0 Stimmen

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.

1 Stimmen

Was sind die unvorhersehbaren Ergebnisse?

10voto

Libu Mathew Punkte 2876
function addDays(n){
    var t = new Date();
    t.setDate(t.getDate() + n); 
    var month = "0"+(t.getMonth()+1);
    var date = "0"+t.getDate();
    month = month.slice(-2);
    date = date.slice(-2);
     var date = date +"/"+month +"/"+t.getFullYear();
    alert(date);
}

addDays(5);

0 Stimmen

Das ist ziemlich nett. Arbeit für mich

CodeJaeger.com

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.

Powered by:

X