Voici une photo du fragment. Je souhaite créer une application de prière qui vous indique combien de temps il reste entre l'heure actuelle et l'heure de prière
J'ai essayé de trouver la différence directement en faisant ceci
prayers = [[13,59], [13,30]]; let time = new Date(); let currprayer = new Date(); for (let index in prayers) { currprayer.setHours(prayers[index][0]) currprayer.setMinutes(prayers[index][1]) if (currprayer.getTime() > time.getTime()){ currprayer.setSeconds(00) let left = new Date(currprayer.getTime() - time.getTime() ); document.getElementById('nextmin').innerHTML = left.getMinutes() document.getElementById('nexthrs').innerHTML = left.getHours() document.getElementById('nextsec').innerHTML = left.getSeconds() } else{ console.log("nope") } }
<div class="details"> <div class="next-prayer"> <span id="nexthrs">00</span> <span>:</span> <span id="nextmin">00</span> <span>:</span> <span id="nextsec">00</span> </div> </div>
Mais il reste bloqué à 00:00:00
Vous pouvez obtenir les horodatages des deux, les soustraire et convertir le résultat dans un nouveau format de date, n'est-ce pas ? Vérifiez le lien pour ce faire : https://plainenglish.io/blog/Comment convertir une chaîne de date en horodatage en JavaScript
Le problème est que l’époque actuelle appartient peut-être au passé. Votre capture d'écran montre 19h24, heure locale, ce qui est évidemment plus tard que les deux heures du tableau
prayers
. Dans ce cas, il faut rechercher l'heure du lendemain.Si dans ce cas vous voulez du temps avant la prochaine prière un jour ajoutez une autre entrée dans le tableau avec 24 heures de plus que la première. Pour ce faire, vous devez d'abord vous assurer que les horaires sont classés par ordre chronologique (ce qui n'est pas le cas dans l'exemple d'extrait)
Voici comment procéder (voir commentaires dans le code) :