Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

compteur de secondes

13 réponses
Avatar
Y a personne
Bonjour,

J'essaye de créer un genre de compteur de secondes.

Je démarre avec ceci :

var cp= new Date();
cp.setMinutes(0);
cp.setSeconds(0);

var i=1;

Toute les secondes, j'exécute la fonction suivante avec setInterval :
cp.setSeconds(i++);

L'affichage fonctionne très bien la première minute mais après les
minutes du compteur augmente de 1 à chaque seconde

quid ?

3 réponses

1 2
Avatar
Dr J R Stockton
In fr.comp.lang.javascript message <47150524$0$29260$
t.be>, Tue, 16 Oct 2007 20:38:36, Y a personne
posted:

Toute les secondes, j'exécute la fonction suivante avec setInterval :
cp.setSeconds(i++);

L'affichage fonctionne très bien la première minute mais après les
minutes du compteur augmente de 1 à chaque seconde


Il faut savoir que un Date Object ne tient point les chiffres pour an,
mois, jour, ... . Il tient un chiffre seulement, un IEEE Double du
millisecondes apres 1970-01-01 00:00:00 UTC.

Donc, method setSecondes doit determiner, au minimum, Minutes sans
Seconds; ajouter les secondes nouveaux d'i++, et former les
millisecondes qui seraient mis dans l'Object.

En case de (par exemple) setSeconds(60), les millisecondes mis dans
l'Object representent un Minute de plus, et nul secondes de plus.

Donc ...


I can read French better than I can type it.

--
(c) John Stockton, Surrey, UK. ???@merlyn.demon.co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demon.co.uk/&gt; - FAQish topics, acronyms, & links.
Check boilerplate spelling -- error is a public sign of incompetence.
Never fully trust an article from a poster who gives no full real name.

Avatar
Dr J R Stockton
En fr.comp.lang.javascript <47179ef1$0$30899$, 18
Oct 2007 19:59:35, YD a ecrit:

Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter
une seconde au temps actuellement stocké :

cp.setSeconds(1 + cp.getSeconds());


Pour moi, avec IE6,
cp.setUTCSeconds(1 + cp.getUTCSeconds());
est trois fois plus vite, et
cp.setTime(1000 + cp.getTime());
est cinq fois plus vite.


--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6
news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html&gt;.
<URL:http://www.merlyn.demon.co.uk/js-index.htm&gt; jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/&gt; TP/BP/Delphi/jscr/&c, FAQ items, links.

Avatar
Olivier Miakinen

Pour éviter tous ces problèmes il suffit sans doute de toujours ajouter
une seconde au temps actuellement stocké :

cp.setSeconds(1 + cp.getSeconds());


Pour moi, avec IE6,
cp.setUTCSeconds(1 + cp.getUTCSeconds());
est trois fois plus rapide, et
cp.setTime(1000 + cp.getTime());
est cinq fois plus rapide.


C'est intéressant à savoir, au titre de curiosité. Cela étant, vu
qu'il ne le fera qu'une fois par seconde, ça m'étonnerait vraiment
que quiconque remarque la différence.


1 2