Kolik sekund už dnes uplynulo?
důležitost: 5
Napište funkci vraťDnešníSekundy(), která vrátí počet sekund, které uplynuly od začátku dnešního dne.
Například jestliže je právě 22:00 a dnes se neměnil letní čas na zimní nebo naopak, pak:
vraťDnešníSekundy() == 36000 // (3600 * 10)
Funkce by měla fungovat v kterýkoli den. To znamená, že by neměla mít napevno zakódovanou hodnotu „dneška“.
Abychom získali počet sekund, můžeme vygenerovat datum z dnešního dne a času 00:00:00 a pak je odečíst od „nynějška“.
Rozdílem bude počet milisekund od začátku dne, který bychom měli vydělit 1000, abychom získali sekundy:
function vraťDnešníSekundy() {
let nyní = new Date();
// vytvoříme objekt z dnešního dne/měsíce/roku
let dnešek = new Date(nyní.getFullYear(), nyní.getMonth(), nyní.getDate());
let rozdíl = nyní - dnešek; // rozdíl v milisekundách
return Math.round(rozdíl / 1000); // vytvoříme sekundy
}
alert( vraťDnešníSekundy() );
Alternativním řešením by bylo získat hodiny, minuty a sekundy a převést je na sekundy:
function vraťDnešníSekundy() {
let d = new Date();
return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}
alert( vraťDnešníSekundy() );