Combien de secondes se sont écoulées aujourd'hui ?
Ecrivez une fonction getSecondsToday()
qui renvoie le nombre de secondes depuis le début de la journée.
Par exemple, s’il est maintenant 10:00 am
, et qu’il n’y a pas de décalage de l’heure d’été, alors :
getSecondsToday() == 36000 // (3600 * 10)
La fonction devrait fonctionner dans n’importe quel jour. Autrement dit, il ne devrait pas avoir de valeur “aujourd’hui” codée en dur.
Pour obtenir le nombre de secondes, nous pouvons générer une date à l’aide du jour et de l’heure en cours 00:00:00, puis la soustraire de “maintenant”.
La différence est le nombre de millisecondes à partir du début de la journée, qu’il faut diviser par 1000 pour obtenir les secondes:
function getSecondsToday() {
let now = new Date();
// crée un objet en utilisant le jour / mois / année en cours
let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
let diff = now - today; // ms difference
return Math.round(diff / 1000); // arrondir en secondes
}
alert( getSecondsToday() );
Une autre solution serait d’obtenir les heures / minutes / secondes et de les convertir en secondes:
function getSecondsToday() {
let d = new Date();
return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}
alert( getSecondsToday() );