Bagaimana cara mengubah data waktu ke dalam format tanggal, bulan, tahun?

Halo Sobat Skilvul!

Barusan saya dapat pertanyaan dari teman

Kan saya ada data tanggal dari database 2019-10-16T17:57:28.210328. Bagaimana cara mengubahnya menjadi “Rabu 16 Oktober 2019”?

Untungnya JavaScript punya yang namanya Intl.DateTimeFormat?

Apa tuh?

Anggap aja kalau kita mau mengubah sebuah data berupa datetime, kita cuma perlu kasih tahu formatnya seperti apa. Misalnya

// buat formatternya
const dateFormatter = new Intl.DateTimeFormat('id', { weekday: "long", year: "numeric" });

Argumen pertama “id” itu localenya – bahasa Indonesia. Kalau mau hasilnya nanti dalam bahasa Inggris ya pakai “en-US” (US English) atau “en-GB” (British English).

Argumen kedua itu objek yang isinya opsi formatnya:

  • weekday: “long” itu nanti nama harinya lengkap (“Senin”, “Rabu”, dll.)
  • year: “numeric” itu nanti tahunnya ditulis lengkap angkanya (“2001”, “2019”, dll).

Bisa lagi nanti ditambah day dan month.

Selanjutnya, ubah tanggal tadi ke dalam bentuk objek date dulu

const date = new Date("2019-10-16T17:57:28.210328")

Lalu tinggal panggil method .format() tadi untuk dapat hasilnya

console.log(dateFormatter.format(date))

Hasilnya di console `2019 Rabu’

Kan masih kurang tanggal dan bulan tuh, berarti tadi di argumen kedua buat optionsnya tinggal tambahin properti month dan day.

Jadi

// tambah properti day: 'numeric' dan month: 'long'
const dateFormatter = new Intl.DateTimeFormat('id', { day: 'numeric', month: 'long', weekday: "long", year: "numeric" });

Sekarang coba lagi

console.log(dateFormatter.format(date))

Cek di console "Rabu, 16 Oktober 2019"

Nah baru benar hasilnya

“Rabu, 16 oktober 2019”