web-dev-qa-db-fra.com

Ajouter 10 secondes à un objet de date Javascript timeObject

Comment puis-je ajouter 10 secondes à un objet date javascript timeObject. Quelque chose comme ça je pense ..

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

Il existe également une méthode setSeconds :

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

Pour obtenir une liste des autres fonctions Date, vous devez vérifier MDN


setSeconds gérera correctement les cas suivants:

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
364
zzzzBov
// var timeObject = new Date();

new Date(timeObject.getTime() + 10000);
93
4esn0k
var timeObject = new Date(); 
timeObject = new Date(timeObject .getTime() + 1000*10);
console.log(timeObject);

Veuillez également vous référer à: Comment ajouter 30 minutes à un objet Date JavaScript?

55
Ron

Juste pour les maniaques de la performance parmi nous.

obtenir du temps

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

5 196 949 Ops/sec, le plus rapide


setSeconds

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

2 936 604 Ops/s, 43% plus lent


moment.js

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

22 549 Ops/sec, 100% plus lent


Alors peut-être que c'est le moins lisible (pas si mal), mais le moyen le plus rapide d'aller :)

tests en ligne jspref

52
Danpe

Essaye ça

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

J'ai quelques nouvelles variantes

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

L'objet Date() en javascript n'est pas vraiment intelligent.

Si vous vous concentrez uniquement sur l'ajout de secondes, vous semblez gérer les choses en douceur, mais si vous essayez d'ajouter un nombre X de secondes, puis d'ajouter un nombre X de minutes et d'heures, etc., au même objet Date, vous vous retrouvez dans le pétrin. Je me suis donc simplement contenté d'utiliser la méthode setSeconds() et de convertir mes données en secondes (ce qui a bien fonctionné).

Si quelqu'un peut démontrer qu'il a ajouté du temps à un objet global Date() en utilisant toutes les méthodes de l'ensemble et que l'heure finale est correctement affichée, j'aimerais le voir, mais j'ai l'impression qu'une méthode de l'ensemble doit être utilisée à la fois. sur un objet Date() donné et les mélanger provoque un désordre.

var vTime = new Date();

var iSecondsToAdd = ( iSeconds + (iMinutes * 60) + (iHours * 3600) + (iDays * 86400) );

vTime.setSeconds(iSecondsToAdd);

Voici de la documentation supplémentaire qui pourrait aider :

2
coding_is_fun
  1. vous pouvez utiliser la méthode setSeconds en obtenant des secondes à partir d'aujourd'hui et en ajoutant simplement 10 secondes

    var today = new Date();
    today.setSeconds(today.getSeconds() + 10);
    
  2. Vous pouvez ajouter 10 * 1000 millisecondes à la nouvelle date:

    var today = new Date(); 
    today = new Date(today.getTime() + 1000*10);
    
  3. Vous pouvez utiliser setTime:

    today.setTime(now.getTime() + 10000)
    
2
Javed IN