HTML date input works in Chrome 25+, Edge 13+, Firefox 57+, Opera 11+, Samsung 4+, Android 4.4+, Safari iOS 5+, and Safari macOS 14.1+. Learn the limits.

Prince Dewani
May 6, 2026
The HTML date input is a set of native form input types that the WHATWG HTML Standard defines for picking dates and times in the browser. It works in Chrome 25+, Edge 13+, Firefox 57+, Opera 11+, Samsung 4+, Android 4.4+, Safari iOS 5+, and Safari 14.1+ on macOS, while Internet Explorer never added support.
This guide covers what HTML date input is, which browsers support it, the input types, how to check support, and the known limitations.
HTML date input is a group of input element types, including date, time, datetime-local, month, and week, that the WHATWG HTML Living Standard defines for capturing date and time values. Each type renders a native picker widget, and the form submits a normalized string such as yyyy-mm-dd.
Every modern browser supports the HTML date input. Chrome, Edge, Opera, and Samsung Internet ship the most complete pickers, while Firefox and Safari render partial widgets that miss some Chrome niceties, and Internet Explorer falls back to plain text.
Chrome supports HTML date input from Chrome 25 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 20 to 24 had partial support that lacked some attributes, and Chrome 4 to 19 did not support it. Every Chromium-based browser tracks Chrome and ships the same calendar picker.
Microsoft Edge supports HTML date input from Edge 13 on Windows. Edge 12 had partial support that fell back to a text box for some types. Chromium Edge 79+ matches Chrome and ships every date and time input the platform defines.
Firefox supports HTML date input from Firefox 57 on Windows, macOS, Linux, and Android. Firefox 53 to 56 had the feature behind a flag and disabled by default, and Firefox 2 to 52 did not support it. Caniuse marks Firefox as partial because the picker still misses attributes that Chrome supports.
Safari supports HTML date input from Safari 14.1 on macOS, with partial coverage that does not yet match the Chrome picker. Safari 3.1 to 14 on macOS rendered the input as a plain text box. Safari iOS supports the input from version 5 with partial coverage, and reaches full support from Safari iOS 18.2.
Opera supports HTML date input from Opera 11 on Windows, macOS, and Linux. Opera Mobile supports it from version 73 on Android. Opera Mini does not support the input on any version, because it strips HTML5 widgets at the proxy layer.
Samsung Internet supports HTML date input from Samsung Internet 4 on Android. Every later release follows Chromium and ships the same date, time, datetime-local, month, and week pickers that Chrome ships, with the standard Samsung skin applied.
The Android Browser supports HTML date input from Android 4.4 (KitKat). Android 2.1 to 4.3 did not support it, and the legacy WebView on those releases falls back to a text input. Modern Android apps use the Chrome-based WebView and inherit Chrome support.
Internet Explorer never added HTML date input. IE 5.5 through IE 11 render every date, time, datetime-local, month, and week input as a plain text box with no validation, no formatting, and no picker. Microsoft has retired Internet Explorer 11 in favor of Edge.
Note: HTML date input behavior shifts across Chrome, Firefox, Safari, and Edge. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
HTML defines five date and time input types: date, time, datetime-local, month, and week. Each type captures a different temporal value and renders a different native picker.
Feature-detect the input type at runtime by setting the type attribute and reading it back. Browsers that do not recognize the type silently fall back to text, so a simple equality check tells you whether the native picker is available.
// Run in the DevTools console to test HTML date input support.
function supportsDateInput(type) {
const input = document.createElement("input");
input.setAttribute("type", type);
// Browsers that do not recognize the type fall back to "text".
return input.type === type;
}
["date", "time", "datetime-local", "month", "week"].forEach((t) => {
console.log(t + " input supported:", supportsDateInput(t));
});
// HTMLInputElement.showPicker() opens the native picker on demand.
const probe = document.createElement("input");
probe.type = "date";
console.log("showPicker() available:", typeof probe.showPicker === "function");If the function returns false for any type, ship a JavaScript fallback such as Flatpickr or Pikaday so users on older Safari, Internet Explorer, and Opera Mini can still pick a date. The showPicker check confirms whether you can open the picker programmatically from a click handler.
HTML date input ships a fixed set of widgets, exposes few CSS hooks, and renders different controls per browser. That mix makes pixel-perfect cross-browser layouts hard and creates locale and accessibility quirks worth planning for.
In my experience, the locale-driven display is the quirk that bites teams hardest, because automated tests written against a US locale break the moment a tester swaps the OS to en-GB or de-DE.
All HTML date input version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance