Berapa detik yang telah berlalu untuk hari ini?
Tulis sebuah fungsi getSecondsToday()
yang mengembalikan angka dari detik yang telah berlalu dari sejak permulaan hari ini.
Sebagai contoh, sekarang pukul 10:00 am
, dan tidak ada daylight savings shift, maka:
getSecondsToday() == 36000 // (3600 * 10)
Fungsi haruslah berjalan untuk hari apapun. sehingga, tidak boleh ada nilai “hari ini” yang ditulis secara hard-code.
Untuk mendapatkan jumlah detik, kita harus membuat sebuah tanggal menggunakan hari yang sedang berlangsung dan waktu 00:00:00, dan mengurangi waktu “saat ini” dengannya.
Perbedaan yang didapat adalah angka dalam milidetik sejak permulaan hari, yang harus dibagi dengan 1000 agar menjadi detik:
function getSecondsToday() {
let sekarang = new Date();
// Buat sebuah objek menggunakan hari/bulan/tahun saat ini
let hariIni = new Date(now.getFullYear(), now.getMonth(), now.getDate());
let beda = sekarang - hariIni; // beda dalam milidetik
return Math.round(beda / 1000); // ubah menjadi detik
}
alert( getSecondsToday() );
Solusi alternatif adalah cari jam/menit/detik dan ubah menjadi detik:
function getSecondsToday() {
let d = new Date();
return d.getHours() * 3600 + d.getMinutes() * 60 + d.getSeconds();
}
alert( getSecondsToday() );