September 17, 2026
Memahami Date dan Time di JavaScript.
Cara membuat, memformat, dan menghitung tanggal serta waktu di JavaScript modern memakai object Date dan Intl.DateTimeFormat.
JavaScript menyediakan object bawaan bernama Date untuk bekerja dengan tanggal dan waktu, mulai dari mengambil waktu sekarang sampai menghitung selisih dua tanggal.
Membuat Object Date
const sekarang = new Date(); // waktu saat ini
const tanggalTertentu = new Date(2026, 8, 17); // 17 September 2026 — bulan dimulai dari 0!
const dariString = new Date("2026-09-17");
Perlu diingat, indeks bulan pada new Date(tahun, bulan, tanggal) dimulai dari 0 (Januari = 0, Desember = 11), sumber kebingungan yang cukup umum bagi pemula.
Mengambil Bagian Tanggal
const tgl = new Date(2026, 8, 17, 14, 30);
tgl.getFullYear(); // 2026
tgl.getMonth(); // 8 (September, karena mulai dari 0)
tgl.getDate(); // 17
tgl.getDay(); // hari dalam seminggu (0 = Minggu)
tgl.getHours(); // 14
tgl.getMinutes(); // 30
Memformat Tanggal dengan Intl.DateTimeFormat
Cara modern dan direkomendasikan untuk menampilkan tanggal sesuai format lokal (termasuk Bahasa Indonesia) adalah lewat Intl.DateTimeFormat, bukan menyusun string manual.
const tgl = new Date(2026, 8, 17);
const formatIndonesia = new Intl.DateTimeFormat("id-ID", {
dateStyle: "full",
}).format(tgl);
console.log(formatIndonesia);
// "Kamis, 17 September 2026"
Menghitung Selisih Dua Tanggal
const mulai = new Date("2026-01-01");
const selesai = new Date("2026-09-17");
const selisihMs = selesai - mulai; // hasil dalam milidetik
const selisihHari = selisihMs / (1000 * 60 * 60 * 24);
console.log(Math.round(selisihHari)); // 259
Menambah Hari ke Tanggal
function tambahHari(tanggal, jumlahHari) {
const hasil = new Date(tanggal);
hasil.setDate(hasil.getDate() + jumlahHari);
return hasil;
}
const jatuhTempo = tambahHari(new Date(), 30);
Timestamp
const waktuSekarang = Date.now(); // jumlah milidetik sejak 1 Januari 1970
Timestamp sangat berguna untuk mengurutkan data berdasarkan waktu atau menyimpan waktu kejadian ke database tanpa masalah zona waktu.
Kesimpulan
Object Date bawaan JavaScript cukup untuk operasi dasar seperti mengambil dan mengubah bagian tanggal, sementara Intl.DateTimeFormat adalah cara paling tepat untuk menampilkan tanggal dalam format lokal Indonesia tanpa perlu menyusun string manual. Untuk kebutuhan yang lebih kompleks seperti zona waktu, banyak proyek modern tetap memilih pustaka tambahan seperti date-fns atau Day.js.

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.