Saya membuat aplikasi Sales, namun kasus <input type=”date” /> ini sungguh menyebalkan di era HTML 5 yang katanya modern. Output pada Chrome menjadi 03/07/2026 . Ini maksudnya tanggal 3 apa tanggal 7? Ada yang menyangka tanggal 3 padahal maksudnya tanggal 7. Walaupun pada akhirnya yang dikirim ke belakang layar formatnya adalah yyyy-mm-dd. Ini adalah kasus teknologi yang paling menyebalkan di abad ini.
Kenapa <input type=”date”> HTML5 Terasa Buruk?
Ini adalah pertanyaan bagus dan sebenarnya sudah jadi “keluhan klasik” di dunia web development. Ada beberapa alasan historis mengapa hasilnya seperti ini:
1. Standardisasi vs Fleksibilitas yang Berbenturan
W3C ingin satu format universal yang tidak ambigu: YYYY-MM-DD (ISO 8601). Tujuannya bagus — agar tidak ada kebingungan antara 07/04/2026 yang bisa berarti 7 April (Indonesia/Eropa) atau 4 Juli (Amerika). Tapi akibatnya, tampilan format dikembalikan sepenuhnya ke browser, dan setiap browser menafsirkannya berbeda berdasarkan locale sistem operasi.
2. Browser yang Mengimplementasikan Semaunya
Setiap browser mengimplementasikan date picker-nya sendiri secara mandiri tanpa panduan desain dari W3C:
| Browser | Tampilan |
|---|---|
| Chrome Android | Format sesuai locale HP (bisa MM/DD atau DD/MM) |
| Safari iOS | Wheel/drum picker bergaya iOS |
| Firefox | Input teks biasa (dulu), baru baru ini baru ada picker |
| Chrome Desktop | Sesuai regional setting OS |
Tidak ada standar tampilan — hanya standar nilai yang dikirim (YYYY-MM-DD).
3. Keterlambatan Standar
Spesifikasi <input type="date"> sudah ada sejak HTML5 draft 2011, tapi Firefox baru benar-benar mengimplementasikannya di tahun 2021. Safari selama bertahun-tahun hanya menampilkan <input type="text"> biasa. Karena lama tidak tersedia, developer terbiasa pakai jQuery Datepicker, flatpickr, dll — dan ketika browser akhirnya implementasi, sudah terlambat untuk membentuk ekspektasi pengguna.
4. Tidak Bisa Di-styling
Date picker bawaan browser adalah “shadow DOM” yang tidak bisa disentuh oleh CSS developer. Anda tidak bisa mengubah warna, font, atau ukurannya agar sesuai desain aplikasi. Ini bertolak belakang dengan filosofi web yang terbuka.
Mengapa Ini Dibiarkan?
Karena setiap perubahan pada spesifikasi HTML harus disetujui oleh semua vendor browser (Google, Mozilla, Apple, Microsoft) dan proses ini sangat lambat. Apple khususnya sangat konservatif — mereka lama sekali menolak berbagai fitur HTML5 di Safari karena alasan bisnis (menjaga ekosistem App Store tetap relevan).
Solusinya di Dunia Nyata
Untuk aplikasi yang serius dan membutuhkan date picker yang konsisten, biasanya developer masih menggunakan library pihak ketiga seperti flatpickr, Pikaday, atau Litepicker — tapi harus dihost sendiri (bukan dari CDN yang bisa diblok) agar tidak ada masalah seperti yang Anda alami tadi.
Untuk kasus aplikasi sales ini, solusi yang sudah kita buat (native type="date" + label Indonesia di bawahnya) sudah cukup praktis dan ringan! 😊

