Authors

Mar 13, 2025

Temporal Object JavaScript: Tidak butuh lagi momentjs ataupun dayjs

JavascriptDate

3 min read

cover

Pendahuluan

Pernah merasa frustrasi saat bekerja dengan tanggal dan waktu di JavaScript? Jika iya, kamu tidak sendirian! Date sering kali membingungkan dengan format yang kurang intuitif, timezone yang sulit dikendalikan, dan keterbatasan lainnya. Biasanya kita membutuhkan library tambahan untuk mengatasi hal tersebut, seperti momentjs ataupun dayjs bukan?

Tapi jangan khawatir! JavaScript sedang bersiap menghadirkan solusi baru: Temporal Object. Fitur ini dirancang sebagai pengganti Date, menawarkan cara yang lebih modern, fleksibel, dan presisi tinggi untuk mengelola waktu dan tanggal. Sehingga tidak perlu lagi menambahkan library tambahan untuk menghandle waktu di Javascript.

Apa Itu Temporal Object?

Temporal adalah API baru yang dikembangkan untuk menggantikan Date. API ini memberikan kontrol lebih baik terhadap tanggal, waktu, timezone, serta manipulasi waktu dengan akurasi tinggi.

Keunggulan Temporal dibandingkan Date:

  • Lebih Akurat – Tidak memiliki masalah floating-point yang sering terjadi di Date.
  • Lebih Fleksibel – Mudah digunakan dengan berbagai timezone dan format ISO.
  • Immutable – Semua objek Temporal bersifat immutable, artinya tidak bisa diubah setelah dibuat, mengurangi potensi bug.
  • Lebih Intuitif – Struktur API yang lebih jelas dan mudah dipahami dibandingkan Date.

Cara Menggunakan Temporal

1. Membuat Tanggal dan Waktu

Membuat tanggal dan waktu sekarang dengan mudah:

const now = Temporal.Now.plainDateTimeISO();
console.log(now.toString()); // "2025-03-13T12:34:56.789"

2. Manipulasi Tanggal

Menambah atau mengurangi tanggal dengan lebih sederhana:

const today = Temporal.PlainDate.from("2025-03-13");
const nextWeek = today.add({ days: 7 });
console.log(nextWeek.toString()); // "2025-03-20"

3. Menghitung Perbedaan Tanggal

Menghitung jarak antara dua tanggal secara otomatis:

const start = Temporal.PlainDate.from("2025-01-01");
const end = Temporal.PlainDate.from("2025-03-13");
const difference = start.until(end);
console.log(difference.toString()); // "P2M12D" (2 bulan 12 hari)

4. Menangani Timezone

Bekerja dengan zona waktu secara lebih mudah:

const zonedDateTime = Temporal.Now.zonedDateTimeISO("Asia/Jakarta");
console.log(zonedDateTime.toString());

Support

Saat ini, Temporal masih dalam tahap expreimental dan direncanakan menjadi bagian dari spesifikasi ECMAScript. Beberapa browser ataupun runtime JavaScript modern sudah mulai mengimplementasikannya. Untuk menggunakannya seperti pada Firefox, untuk menggunakan fitur ini perlu menakrifkan flag yang ada pada pengaturan firefox.

cover

Namun, jika kamu ingin mulai menggunakannya sekarang, bisa memakai polyfill berikut:

npm install @js-temporal/polyfill

Lalu impor ke dalam kode kamu:

import { Temporal } from "@js-temporal/polyfill";

Kesimpulan

Temporal adalah masa depan manipulasi tanggal dan waktu di JavaScript. Dengan struktur yang lebih intuitif dan fitur yang lebih canggih dibandingkan Date, API ini akan sangat membantu developer dalam menangani waktu dengan lebih akurat dan efisien. Tidak perlu lagi menambahkan library untuk menghandle tanggal dan waku lagi.

Jadi, kalau kamu sering berurusan dengan tanggal dan waktu dalam proyekmu, ini saatnya untuk mulai mengeksplorasi Temporal. Siapa tahu, ini bisa jadi solusi yang selama ini kamu cari!

References

MDN: Temporal - JavaScript