- Authors
- Name
- Iqbal Nurkholis
- Github
- @iqbl-nrkhls
Mar 13, 2025
Temporal Object JavaScript: Tidak butuh lagi momentjs ataupun dayjs
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.
Temporal
dibandingkan Date
:
Keunggulan - 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.
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!