Come posso aggiungere 10 secondi a un oggetto data JavaScript?
Qualcosa come questo:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Come posso aggiungere 10 secondi a un oggetto data JavaScript?
Qualcosa come questo:
var timeObject = new Date()
var seconds = timeObject.getSeconds() + 10;
timeObject = timeObject + seconds;
Risposte:
C'è anche un setSecondsmetodo:
var t = new Date();
t.setSeconds(t.getSeconds() + 10);
Per un elenco delle altre Date funzioni, è necessario controllare MDN
setSeconds gestirà correttamente i casi avvolgenti:
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()ritorna 'number'nel nodo, quindi penso che potresti avere altri problemi (a meno che tu non sia su una versione obsoleta del nodo o qualcosa del genere).
d.setSeconds(d.getSeconds() - 92);e finirai con una differenza di 2'32 "invece di 1'32". La soluzione con new Date(d.getTime() - 92*1000);funziona comunque!
// let timeObject = new Date();
// let seconds = 10 * 1000; // 10000 milliseconds
timeObject = new Date(timeObject.getTime() + seconds);
Solo per i maniaci dello spettacolo tra noi.
var d = new Date('2014-01-01 10:11:55');
d = new Date(d.getTime() + 10000);
5.196.949 Ops / sec, più veloce
var d = new Date('2014-01-01 10:11:55');
d.setSeconds(d.getSeconds() + 10);
2.936.604 Ops / sec, 43% più lento
var d = new moment('2014-01-01 10:11:55');
d = d.add(10, 'seconds');
22.549 Ops / sec, 100% più lento
Quindi forse è il meno leggibile dall'uomo (non così male) ma il modo più veloce di andare :)
const timeObject = new Date();
timeObject = new Date(timeObject.getTime() + 1000 * 10);
console.log(timeObject);
Consultare anche: Come aggiungere 30 minuti a un oggetto Date JavaScript?
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)
L' Date()oggetto in JavaScript non è poi così intelligente.
Se ti concentri solo sull'aggiunta di secondi, sembra che gestisca le cose senza intoppi, ma se provi ad aggiungere X numero di secondi, aggiungi X numero di minuti e ore, ecc., Allo stesso Dateoggetto che finisci nei guai. Quindi sono semplicemente tornato a utilizzare solo il setSeconds()metodo e convertire i miei dati in pochi secondi (che ha funzionato bene).
Se qualcuno può dimostrare di aggiungere tempo a un Date()oggetto globale usando tutti i metodi set e far uscire correttamente l'ora finale, vorrei vederlo, ma ho la sensazione che un metodo set debba essere utilizzato alla volta su un determinato Date()oggetto e mescolarli porta a un disastro.
var vTime = new Date();
var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );
vTime.setSeconds(iSecondsToAdd);
puoi usare il setSecondsmetodo ottenendo secondi da oggi e semplicemente aggiungendo 10 secondi in esso
var today = new Date();
today.setSeconds(today.getSeconds() + 10);Puoi aggiungere 10 * 1000 millisecondi alla nuova data:
var today = new Date();
today = new Date(today.getTime() + 1000*10);Puoi usare setTime:
today.setTime(now.getTime() + 10000)Prova in questo modo.
Date.prototype.addSeconds = function(seconds) {
var copiedDate = new Date(this.getTime());
return new Date(copiedDate.getTime() + seconds * 1000);
}
Basta chiamare e assegnare new Date().addSeconds(10)