Heim >Web-Frontend >js-Tutorial >Wie füge ich einem JavaScript-Datumsobjekt 30 Minuten hinzu?

Wie füge ich einem JavaScript-Datumsobjekt 30 Minuten hinzu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-01-04 10:50:40977Durchsuche

How to Add 30 Minutes to a JavaScript Date Object?

Wie füge ich 30 Minuten zu einem JavaScript-Datumsobjekt hinzu?

Um 30 Minuten zu einem JavaScript-Datumsobjekt hinzuzufügen, können Sie Folgendes tun Führen Sie die folgenden Schritte aus:

Verwenden einer Bibliothek

Wenn Sie viele Dates haben funktioniert, sollten Sie sich vielleicht JavaScript-Datumsbibliotheken wie Luxon, Day.js oder Moment.js ansehen. Bei Moment.js lautet dies beispielsweise einfach:

var newDateObj = moment(oldDateObj).add(30, 'm').toDate();

Vanilla JavaScript

Das ist wie die Antwort von Chaos, aber in einer Zeile:

var newDateObj = new Date(oldDateObj.getTime() diff*60000);
Wobei diff die gewünschte Differenz in Minuten von der Zeit von oldDateObj ist. Es kann sogar negativ sein.

Oder als wiederverwendbare Funktion, wenn Sie dies an mehreren Stellen tun müssen:

Funktion addMinutes(date,minutes) {

return new Date(date.getTime() + minutes*60000);

}
Und nur für den Fall, dass dies nicht offensichtlich ist: Der Grund, warum wir Minuten mit 60000 multiplizieren, besteht darin, Minuten in umzuwandeln Millisekunden.

Seien Sie vorsichtig mit Vanilla-JavaScript. Termine sind schwierig!

Du denkst vielleicht, dass man zu einem Termin 24 Stunden hinzufügen kann, um den Termin von morgen zu bekommen, oder? Falsch!

Es stellt sich heraus, dass ein Tag nicht unbedingt 24 Stunden lang ist, wenn der Benutzer die Sommerzeit beachtet. Es gibt einen Tag im Jahr, der nur 23 Stunden lang ist, und einen Tag im Jahr, der 25 Stunden lang ist. Beispielsweise ist in den meisten Vereinigten Staaten und Kanada der 2. November 2014 24 Stunden nach Mitternacht immer noch der 2. November:

const NOV = 10; //weil JS-Monate um eins verschoben sind...
addMinutes(new Date(2014, NOV, 2), 60*24); //In den USA wird am 2. November um 23 Uhr gedruckt, nicht am 3. November um 12 Uhr!
Aus diesem Grund ist die Verwendung einer der oben genannten Bibliotheken sicherer, wenn Sie viel damit arbeiten müssen.

Unten finden Sie eine allgemeinere Version dieser Funktion, die ich geschrieben habe. Ich würde immer noch empfehlen, eine Bibliothek zu verwenden, aber das könnte für Ihr Projekt übertrieben/unmöglich sein. Die Syntax ist der MySQL-Funktion DATE_ADD nachempfunden.

/**

  • Fügt einem Datum Zeit hinzu. Nach dem Vorbild der MySQL-Funktion DATE_ADD modelliert.
  • Beispiel: dateAdd(new Date(), 'minute', 30) //gibt 30 Minuten in der Zukunft zurück.
  • https://stackoverflow.com/a /1214753/18511
  • @param date Startdatum mit
  • @param-Intervall Eines von: Jahr, Quartal, Monat, Woche, Tag, Stunde, Minute, Sekunde
  • @param-Einheiten Anzahl der Einheiten des angegebenen Intervalls, die hinzugefügt werden sollen.
    */

Funktion dateAdd(date, Interval, Units) {
if(!( Datumsinstanz von Datum))

return undefined;

var ret = new Date(date); //ursprüngliches Datum nicht ändern
var checkRollover = function() { if(ret.getDate() != date.getDate()) ret.setDate(0);};
switch(String(interval ).toLowerCase()) {

case 'year'   :  ret.setFullYear(ret.getFullYear() + units); checkRollover();  break;
case 'quarter':  ret.setMonth(ret.getMonth() + 3*units); checkRollover();  break;
case 'month'  :  ret.setMonth(ret.getMonth() + units); checkRollover();  break;
case 'week'   :  ret.setDate(ret.getDate() + 7*units);  break;
case 'day'    :  ret.setDate(ret.getDate() + units);  break;
case 'hour'   :  ret.setTime(ret.getTime() + units*3600000);  break;
case 'minute' :  ret.setTime(ret.getTime() + units*60000);  break;
case 'second' :  ret.setTime(ret.getTime() + units*1000);  break;
default       :  ret = undefined;  break;

}
return ret;
}
Working jsFiddle Demo.

Das obige ist der detaillierte Inhalt vonWie füge ich einem JavaScript-Datumsobjekt 30 Minuten hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn