Chrome如何确定input[type="date"]的日期显示格式?
Chrome
<input type="date"> 显示格式异常原因说明 核心差异来源
HTML5 原生日期输入框的显示格式由浏览器的本地化规则决定,不同浏览器的规则优先级不同,是你遇到跨浏览器表现不一致的根本原因。
各浏览器规则说明
- Safari 优先读取系统级主语言配置:你将 macOS 主语言设为英语(美国)时,Safari 会直接按照 en-US 地区的
MM/DD/YYYY格式渲染日期输入框,和new Date().toLocaleDateString()的返回结果对齐。 - Chrome 优先读取浏览器自身的 首选语言排序 配置:该优先级高于系统主语言、也高于
navigator.language的返回值。你看到的DD/MM/YYYY格式(27/10/2021)是使用日/月/年排列规则的地区(比如英国、欧盟多数国家)的日期格式,说明你的 Chrome 首选语言列表中,排在第一位的是对应这类地区的语言(比如英语(英国)、英语(欧盟)等)。
补充说明
navigator.language 返回的是 Chrome 的 UI 界面语言,和日期输入框读取的「首选语言排序」是两套独立配置,两者返回值不一致是常见情况。目前 HTML 规范没有强制要求原生日期输入框的显示格式必须对齐 toLocaleDateString 的输出规则,因此不同浏览器的实现差异暂时没有统一标准约束。
内容的提问来源于stack exchange,提问作者Wei
相关产品推荐
相关产品推荐

