Date dan timestamp
Buat, format, dan bandingkan tanggal.
Pahami konsepnya
new Date() memberi waktu saat ini; new Date("2026-10-10") dari string; new Date(2026, 9, 10) dari komponen (bulan 0-indexed: 9 = Oktober!). Method: getFullYear(), getMonth() (0-11!), getDate(), getDay() (0=Minggu), getHours(), getMinutes(). Timestamp: Date.now() memberi milidetik sejak epoch (1 Jan 1970).
Date di JavaScript terkenal kurang ergonomis: getMonth() 0-indexed tapi getDate() 1-indexed; tidak ada built-in formatting yang bagus. toISOString() memberi format standar "2026-10-10T08:00:00.000Z"; toLocaleDateString("id-ID") memberi format lokal.
Selisih dua Date menghasilkan milidetik — bagi 1000 untuk detik, 86400000 untuk hari. Perbandingan: date1 < date2 bekerja karena Date dikonversi ke timestamp saat dibandingkan dengan < >.
Coba contoh kode
const sekarang = new Date();
console.log(sekarang.getFullYear(), sekarang.getMonth() + 1);
const lahir = new Date(2009, 2, 15); // 15 Maret 2009 (bulan 2 = Maret!)
console.log(lahir.toLocaleDateString("id-ID"));
// timestamp
const mulai = Date.now();
// ... kerja berat ...
const selesai = Date.now();
console.log(`Durasi: ${selesai - mulai}ms`);
// selisih hari
const a = new Date("2026-01-01");
const b = new Date("2026-12-31");
console.log(Math.round((b - a) / 86400000)); // 364 harigetMonth() menghasilkan 0-11 — Oktober adalah 9, bukan 10. Selisih dua Date menghasilkan milidetik; bagi 86400000 untuk hari.
Latihan singkat
Uji: new Date(2026, 0, 15).getDate() — harus `15`.