Wie kann ich einem JavaScript-Datumsobjekt 10 Sekunden hinzufügen?
Etwas wie das:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Wie kann ich einem JavaScript-Datumsobjekt 10 Sekunden hinzufügen?
Etwas wie das:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Antworten:
Es gibt auch eine setSecondsMethode:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Eine Liste der anderen Date Funktionen finden Sie unter MDN
setSeconds behandelt Wrap-Around-Fälle korrekt:
var d;
d = new Date('2014-01-01 10:11:55');
alert(d.getMinutes() + ':' + d.getSeconds()); //11:55
d.setSeconds(d.getSeconds() + 10);
alert(d.getMinutes() + ':0' + d.getSeconds()); //12:05
typeof new Date().getSeconds()kehrt 'number'in node zurück, daher denke ich, dass Sie möglicherweise andere Probleme haben (es sei denn, Sie haben eine veraltete Version von node oder so).
d.setSeconds(d.getSeconds() - 92);und Sie erhalten 2'32 "Unterschied statt 1'32". Die Lösung mit new Date(d.getTime() - 92*1000);funktioniert jedoch!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Nur für die Performance-Maniacs unter uns.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5.196.949 Ops / Sek., Am schnellsten
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2.936.604 Ops / Sek., 43% langsamer
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22.549 Ops / Sek., 100% langsamer
Vielleicht ist es der am wenigsten lesbare (nicht so schlechte), aber der schnellste Weg :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Siehe auch: Wie füge ich einem JavaScript-Datumsobjekt 30 Minuten hinzu?
var timestamp = Date.parse("2011-03-26T20:59:59.999Z"); var d = new Date(timestamp); d.setSeconds(d.getSeconds() + 10); console.log(d.getTime() - timestamp);
timeObject.setSeconds(timeObject.getSeconds() + 10)
Das Date()Objekt in Javascript ist wirklich nicht so schlau.
Wenn Sie sich nur auf das Hinzufügen von Sekunden konzentrieren, scheint dies reibungslos zu funktionieren. Wenn Sie jedoch versuchen, X Sekunden hinzuzufügen, fügen Sie X DateObjekte und Stunden usw. zu demselben Objekt hinzu , bei dem Sie Probleme haben. Also habe ich einfach darauf zurückgegriffen, nur die setSeconds()Methode zu verwenden und meine Daten in Sekunden umzuwandeln (was gut funktioniert hat).
Wenn jemand das Hinzufügen von Zeit zu einem globalen Date()Objekt mit allen festgelegten Methoden demonstrieren kann und die endgültige Zeit korrekt angezeigt wird, würde ich es gerne sehen, aber ich habe das Gefühl, dass jeweils eine festgelegte Methode für ein bestimmtes Date()Objekt und verwendet werden soll das Mischen führt zu einem Durcheinander.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
Sie können die setSecondsMethode verwenden, indem Sie Sekunden von heute abrufen und nur 10 Sekunden hinzufügen
var today = new Date();
today.setSeconds(today.getSeconds() + 10);Sie können dem neuen Datum 10 * 1000 Millisekunden hinzufügen:
var today = new Date();
today = new Date(today.getTime() + 1000*10);Sie können verwenden setTime:
today.setTime(now.getTime() + 10000)Versuchen Sie es auf diese Weise.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Einfach anrufen und zuweisen new Date().addSeconds(10)