Скільки секунд пройшло сьогодні?
важливість: 5
Напишіть функцію getSecondsToday()
, що повертає кількість секунд з початку сьогоднішнього дня.
Наприклад, якщо зараз 10:00 am
, і не було зміни літнього часу, то:
getSecondsToday() == 36000 // (3600 * 10)
Функція повинна працювати в будь-який день. Тобто, вона не повинна мати жорстко-кодоване значення “сьогодні”.
Щоб отримати кількість секунд, ми можемо створити дату, використовуючи поточний день та час 00:00:00, а потім відняти його від “зараз”.
Різниця – це кількість мілісекунд з початку дня, яку ми повинні розділити на 1000, щоб отримати секунди:
function getSecondsToday() {
let now = new Date();
// створити об’єкт, використовуючи поточний день/місяць/рік
let today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
let diff = now - today; // мс різниця
return Math.round(diff / 1000); // зробити секунди
}
alert( getSecondsToday() );
Альтернативне рішення полягає в тому, щоб отримати години/хвилини/секунди та конвертувати їх до секунд:
function getSecondsToday() {
let d = new Date();
return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}
alert( getSecondsToday() );