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.

Comments