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;
javascript
George
quelle
quelle
Antworten:
Es gibt auch eine
setSeconds
Methode:Eine Liste der anderen
Date
Funktionen finden Sie unter MDNsetSeconds
behandelt Wrap-Around-Fälle korrekt:quelle
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 mitnew Date(d.getTime() - 92*1000);
funktioniert jedoch!quelle
Nur für die Performance-Maniacs unter uns.
Zeit kriegen
5.196.949 Ops / Sek., Am schnellsten
setSeconds
2.936.604 Ops / Sek., 43% langsamer
moment.js
22.549 Ops / Sek., 100% langsamer
Vielleicht ist es der am wenigsten lesbare (nicht so schlechte), aber der schnellste Weg :)
jspref Online-Tests
quelle
Siehe auch: Wie füge ich einem JavaScript-Datumsobjekt 30 Minuten hinzu?
quelle
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);
Versuche dies
quelle
quelle
Ich habe ein paar neue Varianten
var t = new Date(Date.now() + 10000);
var t = new Date(+new Date() + 10000);
quelle
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
Date
Objekte und Stunden usw. zu demselben Objekt hinzu , bei dem Sie Probleme haben. Also habe ich einfach darauf zurückgegriffen, nur diesetSeconds()
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 bestimmtesDate()
Objekt und verwendet werden soll das Mischen führt zu einem Durcheinander.Hier ist eine weitere Dokumentation, die helfen kann :
quelle
Sie können die
setSeconds
Methode verwenden, indem Sie Sekunden von heute abrufen und nur 10 Sekunden hinzufügenSie können dem neuen Datum 10 * 1000 Millisekunden hinzufügen:
Sie können verwenden
setTime
:quelle
Versuchen Sie es auf diese Weise.
Einfach anrufen und zuweisen
new Date().addSeconds(10)
quelle