Jak mogę dodać 10 sekund do obiektu daty JavaScript?
Coś takiego:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
javascript
Jerzy
źródło
źródło
Odpowiedzi:
Istnieje również
setSeconds
metoda:Aby uzyskać listę innych
Date
funkcji, powinieneś sprawdzić MDNsetSeconds
będzie poprawnie obsługiwać przypadki zawijania:źródło
typeof new Date().getSeconds()
zwraca'number'
w węźle, więc myślę, że możesz mieć inne problemy (chyba że używasz przestarzałej wersji węzła lub czegoś takiego).d.setSeconds(d.getSeconds() - 92);
a skończysz z różnicą 2'32 "zamiast 1'32". Rozwiązanie znew Date(d.getTime() - 92*1000);
działa jednak!źródło
Tylko dla maniaków wydajności wśród nas.
uzyskać czas
5 196 949 Operacji / s, najszybciej
setSeconds
2 936 604 operacji / s, o 43% wolniej
moment.js
22,549 operacji / s, 100% wolniej
Może więc jest to najmniej czytelna dla człowieka (nie taka zła), ale najszybsza droga :)
jspref testy online
źródło
Zobacz także: Jak dodać 30 minut do obiektu daty JavaScript?
źródło
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);
Spróbuj tego
źródło
źródło
Mam kilka nowych wariantów
var t = new Date(Date.now() + 10000);
var t = new Date(+new Date() + 10000);
źródło
Date()
Obiektu w JavaScript nie jest to naprawdę mądry.Jeśli skupisz się na dodawaniu sekund, wydaje się, że poradzisz sobie płynnie, ale jeśli spróbujesz dodać liczbę X sekund, dodaj liczbę X minut i godzin itp. Do tego samego
Date
obiektu , co spowoduje kłopoty. Więc po prostu wróciłem do korzystania tylko z tejsetSeconds()
metody i konwertowania danych na sekundy (co działało dobrze).Jeśli ktokolwiek może zademonstrować dodanie czasu do
Date()
obiektu globalnego przy użyciu wszystkich ustawionych metod, a czas końcowy wyszedł poprawnie, chciałbym go zobaczyć, ale mam wrażenie, że jedna metoda zestawu powinna być używana jednocześnie na danymDate()
obiekcie i mieszanie ich prowadzi do bałaganu.Oto kilka innych dokumentów, które mogą pomóc :
źródło
możesz użyć tej
setSeconds
metody, zdobywając sekundy od dzisiaj i dodając w niej 10 sekundMożesz dodać 10 * 1000 milisekund do nowej daty:
Możesz użyć
setTime
:źródło
Wypróbuj w ten sposób
Wystarczy zadzwonić i przypisać
new Date().addSeconds(10)
źródło