380 votes

Ajouter 10 secondes à une date

Comment ajouter 10 secondes à un objet date en JavaScript ?

Voici ce qu'il en est :

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

4 votes

Ou si vous voulez le faire via le constructeur - new Date(new Date().getTime() + 10000)

2 votes

0 votes

Vous pouvez aussi simplement new Date(+timeObject + seconds * 1000)

593voto

zzzzBov Points 62084

Il y a un setSeconds également :

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

Pour une liste des autres Date fonctions, Vous devriez consulter MDN


setSeconds traitera correctement les cas enveloppants :

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

5 votes

Attention, mon installation Nodejs renvoie d.getSeconds() comme une chaîne de caractères. J'ai dû le changer en (+d.getSeconds()) Le plus unaire convertit une chaîne en un nombre. Peut-être un peu plus évident serait 1*d.getSeconds()

1 votes

@tqwhite, typeof new Date().getSeconds() retours 'number' dans node, donc je pense que vous avez d'autres problèmes (à moins que vous ne soyez sur une version obsolète de node ou quelque chose comme ça).

5 votes

Essayez de faire d.setSeconds(d.getSeconds() - 92); et vous obtiendrez une différence de 2'32" au lieu de 1'32". La solution avec new Date(d.getTime() - 92*1000); fonctionne cependant !

172voto

4esn0k Points 295
let timeObject = new Date();
const milliseconds = 10 * 1000; // 10 seconds = 10000 milliseconds
timeObject = new Date(timeObject.getTime() + milliseconds);

38 votes

... et la raison pour laquelle vous avez ajouté 10000 est que les dates Javascript fonctionnent en millisecondes, c'est-à-dire 10000 = 10 * 1000

1 votes

Le + qui précède timeObject est nécessaire car il transforme timeObject en nombre. C'est donc comme timeObject.getTime() dans la réponse de Ron

1 votes

Petite astuce un peu évidente : si vous ajoutez des secondes à la date actuelle, vous pouvez raccourcir un peu le code en utilisant Date.now() . Exemple : const timeObject = new Date(Date.now() + milliseconds);

63voto

Ron Points 352
const 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 en JavaScript ?

8 votes

Parmi toutes les mauvaises réponses, celle-ci est la bonne.

0 votes

Oui, c'est la bonne réponse. Malheureusement, Google renvoie à cette question si l'on cherche "javascript date add seconds" et la réponse la plus votée est fausse.

2 votes

Quelqu'un peut-il expliquer ce qui ne va pas dans la réponse sélectionnée (actuellement de @zzzzBov) ? Elle fonctionne pour moi.

11voto

lostyzd Points 1462

Essayez ceci

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

4voto

Tomasz Nurkiewicz Points 140462
timeObject.setSeconds(timeObject.getSeconds() + 10)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X