kembali ke pelajaran

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() );