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.

653voto

p.campbell Punkte 94960

Sie können JavaScript verwenden, kein jQuery erforderlich:

var someDate = new Date();
var numberOfDaysToAdd = 6;
var result = someDate.setDate(someDate.getDate() + numberOfDaysToAdd);
console.log(new Date(result))

125 Stimmen

Wie bei den meisten Dingen in Javascript ist die eingebaute Datumsverarbeitung extrem leistungsfähig, aber völlig unintuitiv.

10 Stimmen

@Joel: Ich stimme zu, es ist ein Kopfschüttler, der setDate() . Nicht-intuitiv ist eine gute Beschreibung.

5 Stimmen

Datum Objekt als Referenz.

173voto

user3945851 Punkte 1522

Dies gilt für 5 Tage:

var myDate = new Date(new Date().getTime()+(5*24*60*60*1000));

Sie brauchen kein JQuery, Sie können es in JavaScript machen, ich hoffe, Sie verstehen es.

7 Stimmen

Ich glaube, das ist bis jetzt die sauberste Lösung, die ich gefunden habe. Danke

0 Stimmen

Weiter ausbauen, um 180 Minuten hinzuzufügen new Date(new Date().getTime()+(180*60*1000))

5 Stimmen

Oder, um es weiter zu vereinfachen, für 5 Tage: let myDate = new Date(Date.now() + 5 * 86400000);

115voto

Krishna Chytanya Punkte 1378

Sie könnten das Javascript Date-Objekt wie folgt erweitern

Date.prototype.addDays = function(days) {
    this.setDate(this.getDate() + parseInt(days));
    return this;
};

und in Ihrem Javascript-Code könnten Sie aufrufen

var currentDate = new Date();
// to add 4 days to current date
currentDate.addDays(4);

12 Stimmen

Das wird nicht funktionieren... wenn man Tage hinzufügt, werden daraus seltsame Jahre und Monate.

14 Stimmen

@Ferryvandenheuvel: Das stimmt nicht. Die vorgeschlagene Methode funktioniert vollkommen problemlos.

2 Stimmen

@Ferryvandenheuvel hatte Recht, denn Krishnas Lösung braucht eine kleine, aber wichtige Verbesserung, um sicher zu sein, wenn die Tage als String statt als Ganzzahl angegeben werden: siehe meinen Kommentar unten stackoverflow.com/a/20468397/2732083

89voto

user3138856 Punkte 871

Warum verwenden Sie nicht einfach

function addDays(theDate, days) {
    return new Date(theDate.getTime() + days*24*60*60*1000);
}

var newDate = addDays(new Date(), 5);

oder -5, um 5 Tage zu entfernen

1 Stimmen

Um ein formatiertes Datum zurückzugeben, verwenden Sie diese **** return (returndate.getMonth() + 1) + "/" + returndate.getDate() + "/" + returndate.getFullYear();

9 Stimmen

Dies würde zweimal im Jahr aufgrund von DTS-Änderungen ausfallen.

0 Stimmen

Gemäß dem Kommentar von Jancha zu dieser Funktion: Wenn Sie Tage über die DTS-Grenze hinaus hinzufügen, erhalten Sie ein falsches Datum/Zeit-Ergebnis. So ist das beste, etablierte Datum Bibliothek wie momentjs zu verwenden.

36voto

Aakash Punkte 17068

[UPDATE] Lesen Sie weiter este bevor Sie fortfahren...

Moment.js

Installieren Sie moment.js von aquí .

npm : $ npm i --save moment

Laube : $ bower install --save moment

Nächste,

var date = moment()
            .add(2,'d') //replace 2 with number of days you want to add
            .toDate(); //convert it to a Javascript Date Object if you like

Link Ref : http://momentjs.com/docs/#/manipulating/add/

Moment.js ist eine erstaunliche Javascript-Bibliothek zur Verwaltung von Date-Objekten und extrem leichtgewichtig bei 40kb .

Viel Glück!

13 Stimmen

40kb sind zu viel für eine einseitige Anwendung und nur für die Verwaltung von Daten

2 Stimmen

40kb sind kein Problem, sie werden im Browser zwischengespeichert, so dass die Downloadzeit nur beim ersten Aufruf der Seite gilt. Nutzer mit einer Breitbandverbindung werden keinen Unterschied bemerken.

1 Stimmen

@stackdave hängt von der Intensität ab. Einfach ein paar Tage hinzufügen, ja. Komplexe Datumslogik verwalten, nein.

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