1131 Stimmen

Wie kann man 30 Minuten zu einem JavaScript-Datumsobjekt hinzufügen?

Ich möchte ein Datumsobjekt erhalten, das 30 Minuten später als ein anderes Datumsobjekt ist. Wie kann ich das mit JavaScript erreichen?

6voto

unsynchronized Punkte 4729

Ich habe das Gefühl, dass vielen der Antworten hier eine kreative Komponente fehlt, die für Zeitreiseberechnungen sehr wichtig ist. Ich präsentiere meine Lösung für eine zeitliche Übersetzung von 30 Minuten.

(jsfiddle aquí )

function fluxCapacitor(n) {
    var delta,sigma=0,beta="ge";
    (function(K,z){

        (function(a,b,c){
            beta=beta+"tT";
            switch(b.shift()) {
                case'3':return z('0',a,c,b.shift(),1);
                case'0':return z('3',a,c,b.pop());
                case'5':return z('2',a,c,b[0],1);
                case'1':return z('4',a,c,b.shift());
                case'2':return z('5',a,c,b.pop());
                case'4':return z('1',a,c,b.pop(),1);
            }
        })(K.pop(),K.pop().split(''),K.pop());
    })(n.toString().split(':'),function(b,a,c,b1,gamma){
       delta=[c,b+b1,a];sigma+=gamma?3600000:0; 
       beta=beta+"im";
    });
    beta=beta+"e";
    return new Date (sigma+(new Date( delta.join(':')))[beta]());
}

6voto

rayalois22 Punkte 145

Sie könnten dies tun:

let thirtyMinutes = 30 * 60 * 1000; // convert 30 minutes to milliseconds
let date1 = new Date();
let date2 = new Date(date1.getTime() + thirtyMinutes);
console.log(date1);
console.log(date2);

5voto

Adnane Ar Punkte 428

Ich weiß, dass das Thema viel zu alt ist. Aber ich bin mir ziemlich sicher, dass es einige Entwickler gibt, die das noch brauchen, also habe ich dieses einfache Skript für Sie erstellt. Ich hoffe, Sie genießen es!

Hallo zurück, wir schreiben das Jahr 2020 und ich habe einige Änderungen vorgenommen, in der Hoffnung, dass es jetzt viel besser hilft!

Hallo nochmal, es ist 2022 und ich bin zurückgekommen, um einige Probleme zu beheben und eine bessere Benennung für die Methoden und Funktionen zu geben.

function addTimeToDate(addedTime, date){
  let generatedTime=date.getTime();
  if(addedTime.seconds) generatedTime+=1000*addedTime.seconds; //check for additional seconds 
  if(addedTime.minutes) generatedTime+=1000*60*addedTime.minutes;//check for additional minutes 
  if(addedTime.hours) generatedTime+=1000*60*60*addedTime.hours;//check for additional hours 
  return new Date(generatedTime);
}

Date.prototype.addTime = function(addedTime){
  return addTimeToDate(addedTime, this);
}

let futureDate = new Date().addTime({
    hours: 16, //Adding one hour
    minutes: 45, //Adding fourty five minutes
    seconds: 0 //Adding 0 seconds return to not adding any second so  we can remove it.
});

<button onclick="console.log(futureDate)">Travel to the future</button>

5voto

gildniy Punkte 2458

Hier ist die IsoString-Version:

console.log(new Date(new Date().setMinutes(new Date().getMinutes() - (30))).toISOString());

5voto

phentnil Punkte 1584

Eine Möglichkeit, 30 Minuten "hinzuzufügen", besteht darin, ein zweites Datumsobjekt zu erstellen (hauptsächlich zur Demonstration) und die Minuten einstellen a minutes + 30 . Dadurch wird auch die Stunde angepasst, wenn die erste Zeit weniger als 30 Minuten von der nächsten Stunde entfernt ist. (d.h., 4:45 a 5:15 )

const first = new Date();
console.log("first date :", first.toString());
const second = new Date(first);
const newMinutes = second.getMinutes() + 30;
console.log("new minutes:", newMinutes);
second.setMinutes(newMinutes);
console.log("second date:", second.toString());

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