---
title: 'Tanggal'
description: "Operator manipulasi tanggal dan waktu (Date/Time)."
navigation:
  icon: 'i-ph-code-block'
seo:
  title: 'Tanggal'
  description: "Operator manipulasi tanggal dan waktu (Date/Time)."
---

## Tinjauan

Operator tanggal menyediakan fungsionalitas komprehensif untuk bekerja dengan hari, bulan, tahun, waktu, dan interval. Operator ini memudahkan proses penguraian (parsing), pemformatan, aritmatika tanggal, dan perbandingan waktu yang diperlukan untuk logika bisnis seperti penghitungan umur atau validasi jatuh tempo.

### Kasus Penggunaan Umum

- **Penghitungan Umur**: Menggunakan `DATEDIF` untuk mendapatkan selisih tahun, bulan, atau hari secara akurat.
- **Validasi Jatuh Tempo**: Memeriksa apakah suatu tanggal sudah melewati batas waktu tertentu.
- **Aritmatika Tanggal**: Menjumlahkan atau mengurangkan hari dari suatu tanggal.
- **Pemformatan**: Mengubah format ISO menjadi format yang ramah pengguna (seperti "15 Januari 2024").

### Standarisasi Format

JSON-Eval-RS menggunakan format **ISO 8601** sebagai standar utama:
- **Hanya Tanggal**: `"2024-01-15"`
- **Tanggal & Waktu**: `"2024-01-15T14:30:00Z"`

---

## `today` / `TODAY` - Tanggal Hari Ini

Mengembalikan tanggal hari ini dengan waktu disetel ke tengah malam (00:00:00).

### Sintaks
```json
{"today": null}
```

### Contoh
```json
{"today": null}  // → "2024-01-15T00:00:00.000Z"
```

---

## `now` / `NOW` - Waktu Sekarang

Mengembalikan waktu saat ini secara lengkap hingga milidetik.

### Sintaks
```json
{"now": null}
```

---

## `year`, `month`, `day` - Ekstraksi Elemen

Mengambil bagian tertentu dari sebuah tanggal.

### Contoh
```json
{"year": "2024-06-15"}   // → 2024
{"month": "2024-06-15"}  // → 6
{"day": "2024-06-15"}    // → 15
```

---

## `date` / `DATE` - Konstruksi Tanggal

Membangun objek tanggal dari komponen tahun, bulan, dan hari.

### Sintaks
```json
{"date": [tahun, bulan, hari]}
```

### Contoh
```json
{"date": [2024, 12, 25]}  // → "2024-12-25T00:00:00.000Z"
```

---

## `days` / `DAYS` - Selisih Hari

Menghitung selisih jumlah hari antara dua tanggal.

### Sintaks
```json
{"days": [tanggal_akhir, tanggal_awal]}
```

### Contoh
```json
{"days": ["2024-01-20", "2024-01-15"]}  // → 5
```

---

## `dateformat` / `DATEFORMAT` - Pemformatan Tanggal

Mengubah wujud tampilan tanggal menjadi format tertentu.

### Preset yang Tersedia
- **`iso`**: `2024-01-15` (Default)
- **`short`**: `01/15/2024` (Format US)
- **`long`**: `January 15, 2024`
- **`eu`**: `15/01/2024` (Format Eropa)

### Contoh Custom Format
Mendukung kode `strftime` seperti `%Y`, `%m`, `%d`, `%A`, dll.
```json
{"dateformat": ["2024-01-15", "%d %B %Y"]}  // → "15 January 2024"
```

---

## `datedif` / `DATEDIF` - Selisih Waktu Lanjutan

Menghitung selisih antara dua tanggal berdasarkan unit tertentu (Y, M, D, YM, YD, MD).

### Parameter Unit
- **"Y"**: Selisih tahun penuh.
- **"M"**: Selisih bulan penuh.
- **"D"**: Selisih hari penuh.
- **"YM"**: Selisih bulan dengan mengabaikan tahun.

### Contoh
```json
// Menghitung umur dalam tahun
{"DATEDIF": [{"var": "birthdate"}, {"today": null}, "Y"]}
```

---

## Praktik Terbaik

1. **Gunakan format ISO 8601** untuk semua input tanggal agar konsisten dan menghindari kerancuan format regional.
2. **Gunakan `DATEDIF` dengan unit "Y"** untuk perhitungan umur yang legal dan akurat.
3. **Manfaatkan `dateformat`** hanya pada tahap akhir saat data ingin ditampilkan ke pengguna, jangan gunakan untuk pemrosesan logika internal.
