Aggiungi 10 secondi ad un object data Javascript TimeObject

Come posso aggiungere 10 secondi a un object data javascript timeObject. Qualcosa di simile penso ..

var timeObject = new Date() var seconds = timeObject.getSeconds() + 10; timeObject = timeObject + seconds; 

Esiste anche un metodo setSeconds :

 var t = new Date(); t.setSeconds(t.getSeconds() + 10); 

Per un elenco delle altre funzioni Date , dovresti controllare MDN


setSeconds gestirà correttamente i casi wrap-around:

 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 
 // var timeObject = new Date(); new Date(timeObject.getTime() + 10000); 
 var timeObject = new Date(); timeObject = new Date(timeObject .getTime() + 1000*10); console.log(timeObject); 

Inoltre, si prega di fare riferimento: Come aggiungere 30 minuti a un object Date JavaScript?

Solo per i maniaci delle prestazioni tra di noi.

prendi tempo

 var d = new Date('2014-01-01 10:11:55'); d = new Date(d.getTime() + 10000); 

5,196,949 Ops / sec, il più veloce


setSeconds

 var d = new Date('2014-01-01 10:11:55'); d.setSeconds(d.getSeconds() + 10); 

2.936.604 Ops / sec, 43% più lenti


moment.js

 var d = new moment('2014-01-01 10:11:55'); d = d.add(10, 'seconds'); 

22.549 Ops / sec, 100% più lenti


Quindi forse è il meno leggibile (non così male) ma il modo più veloce di andare 🙂

test online di jspref

Prova questo

 a = new Date(); a.setSeconds(a.getSeconds() + 10); 
 timeObject.setSeconds(timeObject.getSeconds() + 10) 

L’object Date() in javascript non è così intelligente.

Se ti concentri solo sull’aggiunta di secondi, sembra che gestisca le cose senza problemi, ma se provi ad aggiungere X numero di secondi, aggiungi il numero X di minuti e ore, ecc. Allo stesso object Date che finisci nei guai. Quindi ho semplicemente ricominciato a utilizzare solo il metodo setSeconds() e convertire i miei dati in secondi (il che ha funzionato setSeconds() ).

Se qualcuno può dimostrare di aggiungere tempo a un object Date() globale usando tutti i metodi impostati e avere l’ultima volta che viene fuori correttamente mi piacerebbe vederlo, ma ho la sensazione che sia necessario utilizzare un solo metodo per volta dato object Date() e mescolandoli porta a un pasticcio.

 var vTime = new Date(); var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) ); vTime.setSeconds(iSecondsToAdd); 

Ecco qualche altra documentazione che può aiutare :

  1. è ansible utilizzare il metodo setSeconds ottenendo secondi da oggi e aggiungendo solo 10 secondi in esso

     var today = new Date(); today.setSeconds(today.getSeconds() + 10); 
  2. È ansible aggiungere 10 * 1000 millisecondi alla nuova data:

     var today = new Date(); today = new Date(today.getTime() + 1000*10); 
  3. Puoi usare setTime :

     today.setTime(now.getTime() + 10000) 

Ho un paio di nuove varianti

  1. var t = new Date(Date.now() + 10000);
  2. var t = new Date(+new Date() + 10000);