J'ai trouvé la bibliothèque de moments qui est assez cool, mais je ne trouve pas que la documentation est très claire sur la manière de réaliser des tâches simples.
J'essaie de construire un compte à rebours et je suppose que je devrais utiliser l'objet de durée, mais je ne comprends pas tout à fait comment (peut-être que l'anglais n'est pas ma langue maternelle). Quoi qu'il en soit, c'est ce que je veux: de sorte que chaqueeconde doit afficher: p> 02:00:00 p> 01:59:59 p> 01:59:58 p> 01:59:57 p> ... p> 00:00:00 p> > Comment pourrais-je atteindre ce résultat avec la bibliothèque Momentsjs?
Merci! P> p>
4 Réponses :
Je ne sais pas très bien les moments non plus, mais je pense que vous recherchez quelque chose comme ceci:
Durée code> représente une période statique et n'augmente pas / diminue avec le flux de temps. Donc, si vous devez la réduire, vous devez le faire vous-même, par exemple créer une sorte de compteur de secondes ou de recréer
de la durée code> à chaque fois. Voici le code de la deuxième option:
var time = 7200;
var duration = moment.duration(time * 1000, 'milliseconds');
var interval = 1000;
setInterval(function(){
duration = moment.duration(duration.asMilliseconds() - interval, 'milliseconds');
//show how many hours, minutes and seconds are left
$('.countdown').text(moment(duration.asMilliseconds()).format('h:mm:ss'));
}, interval);
+1 pour l'explication et la solution qui est exactement ce que je cherchais. Merci!
https://github.com/jsmreese/moment-Duration-Format C'est un plugin au moment de la bibliothèque de date JavaScript pour ajouter un formatage complet à un instant Durations
<script type="application/javascript" src="/js/moment.js"></script> <script type="application/javascript" src="/js/moment-duration-format.js"></script> <script> function startTimer(){ var duration = moment.duration({ 'hour': 2, 'minutes': 0, 'seconds': 0 }); var interval = 1; var timerID = -1; //hold the id var timer = setInterval(function () { if(duration.asSeconds() <= 0){ console.log("STOP!"); console.log(duration.asSeconds()); clearInterval(timerID); } else{ duration = moment.duration(duration.asSeconds() - interval, 'seconds'); $('.countdown').html( duration.format("hh:mm:ss", { trim: false }) ); } }, 1000); timerID = timer; return timer; }; //start myTimer = startTimer(); //stop //clearInterval(myTimer); </script>
Voici ce que j'ai fait en 2019.
var time = 7200; var duration = moment.duration(time, "seconds"); var interval = 1000; setInterval(function(){ duration.subtract(interval, "milliseconds"); //using momentjs substract function console.log(moment(duration.asMilliseconds()).format('hh:mm:ss')); }, interval );
Je ne connais pas la bibliothèque d'instructions, mais il semble que vous souhaitiez
seinterval code> à la place.
Momentsjs fournit des méthodes pour obtenir des horaires et des dates, mais cela ne fait rien d'autre, il suffit de construire mon propre script pour soustraire 1 seconde chaque seconde et l'affiche de la fonction seinterval.
Oh merde, je reçois ce que tu dis maintenant. Correction de l'erreur.
github.com/icambron/moment-counddown Moment-Comptedown est un moment minuscule.js plugin que S'intègre au compte à rebours.js