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.