Memahami Date dan Time pada JavaScript
Pengelolaan tanggal dan waktu (Date dan Time) merupakan bagian penting dalam pengembangan aplikasi berbasis JavaScript. Mulai dari menampilkan tanggal saat ini, menghitung selisih waktu, hingga melakukan format tanggal untuk keperluan tampilan atau penyimpanan, seluruhnya membutuhkan pemahaman yang baik mengenai objek dan fungsi terkait waktu. Artikel ini membahas konsep dasar, fitur utama, serta contoh penggunaan Date dan Time pada JavaScript secara ringkas dan jelas.
1. Objek Date dalam JavaScript
JavaScript menyediakan objek bawaan bernama Date yang berfungsi untuk membuat dan mengelola nilai tanggal serta waktu. Ketika sebuah objek Date dibuat tanpa parameter, nilai yang dihasilkan adalah tanggal dan waktu saat ini berdasarkan zona waktu lokal perangkat.
Contoh pembuatan objek Date
const now = new Date();
console.log(now);
Selain itu, objek Date dapat dibentuk dengan parameter tertentu, misalnya dengan memberikan tahun, bulan, hari, atau menggunakan format string.
Contoh pembuatan dengan parameter
const specificDate = new Date(2025, 0, 15); // 15 Januari 2025
const fromString = new Date("2025-01-15T10:00:00");
2. Mengambil Informasi Tanggal dan Waktu
Objek Date menyediakan banyak metode untuk mendapatkan komponen tanggal dan waktu.
Metode untuk mendapatkan tanggal
getFullYear()→ mendapatkan tahun (4 digit)getMonth()→ mendapatkan bulan (0–11)getDate()→ mendapatkan tanggal (1–31)getDay()→ mendapatkan hari (0–6; 0 = Minggu)
Metode untuk mendapatkan waktu
getHours()getMinutes()getSeconds()getMilliseconds()
Contoh:
const d = new Date();
console.log(d.getFullYear());
console.log(d.getMonth());
console.log(d.getDate());
console.log(d.getHours());
3. Mengatur Nilai Tanggal dan Waktu
Komponen tanggal dan waktu juga dapat diubah menggunakan metode set.
Contoh penggunaan set:
const d = new Date();
d.setFullYear(2030);
d.setMonth(5); // Juni
d.setDate(10);
4. Format Tanggal pada JavaScript
Format tampilan tanggal sering kali harus disesuaikan dengan kebutuhan pengguna atau sistem. JavaScript menyediakan beberapa cara untuk memformat tanggal.
a. Menggunakan toLocaleString()
Ini adalah cara paling mudah karena langsung menyesuaikan dengan lokal yang ditentukan.
const d = new Date();
console.log(d.toLocaleString("id-ID"));
console.log(d.toLocaleDateString("id-ID"));
console.log(d.toLocaleTimeString("id-ID"));
b. Format manual
Jika membutuhkan format khusus seperti YYYY-MM-DD, dapat menggunakan metode get dan merangkai secara manual.
const d = new Date();
const formatted = `${d.getFullYear()}-${(d.getMonth()+1)
.toString().padStart(2,'0')}-${d.getDate().toString().padStart(2,'0')}`;
5. Timezone pada JavaScript
JavaScript secara default menggunakan zona waktu lokal perangkat. Namun, dalam pengembangan aplikasi internasional, pengaturan zona waktu sangat penting.
a. Mendapatkan offset zona waktu
const d = new Date();
console.log(d.getTimezoneOffset());
b. Menggunakan waktu berbasis UTC
JavaScript menyediakan metode khusus untuk mode UTC:
getUTCFullYear()getUTCMonth()getUTCDate()getUTCHours()
6. Perhitungan Waktu (Time Calculation)
Untuk menghitung selisih waktu, JavaScript menggunakan nilai dalam milidetik.
Contoh menghitung selisih hari:
const start = new Date("2025-01-01");
const end = new Date("2025-01-10");
const diff = end - start; // dalam milidetik
const days = diff / (1000 * 60 * 60 * 24);
console.log(days); // 9 hari
7. Library Pendukung Date & Time
Meskipun objek Date cukup kuat, berbagai library tambahan membantu mempermudah formatting, parsing, dan perhitungan waktu.
Beberapa library populer:
- Moment.js (legacy, masih banyak digunakan)
- Day.js (lebih ringan)
- Luxon (fitur timezone lebih lengkap)
- date-fns (modular dan modern)
Contoh menggunakan Day.js:
dayjs().format("YYYY-MM-DD HH:mm:ss");
Kesimpulan
Pengelolaan tanggal dan waktu dalam JavaScript merupakan hal penting dalam pengembangan aplikasi. Dengan memahami objek Date, metode pengambilan dan pengaturan waktu, penanganan zona waktu, serta perhitungan selisih waktu, pengembang dapat membuat fitur yang lebih akurat dan sesuai kebutuhan. Untuk kebutuhan yang lebih kompleks, library seperti Day.js dan Luxon dapat menjadi solusi yang efisien.
Jika digunakan dengan tepat, pengelolaan Date dan Time akan membuat aplikasi lebih andal, konsisten, dan ramah pengguna.