Ich möchte ein Datumsobjekt erhalten, das 30 Minuten später als ein anderes Datumsobjekt ist. Wie kann ich das mit JavaScript erreichen?
Antworten
Zu viele Anzeigen?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]());
}
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>
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());