如果我要访问value
a date
ordatetime
元素,无论语言环境如何,该值是否会以规范形式(例如:YYYY-MM-DD
or YYYY-MM-DD HH:MM:SS
)返回?我想这样的事情是必要的,而不是让开发人员处理不同的特定于语言环境的日期格式。HTML5 规范中是否有提到这一点的部分?
1 回答
我想我应该多搜索一点。根据§4.10.1.5
然而,在某些地区,当呈现给用户时,时间通常以不同的方式表达。例如,在美国,使用带有上午/下午指示符的 12 小时制时钟仍然很常见,如“下午 2 点”。在法国,通常使用“h”字符将小时与分钟分开,例如“14h00”。
日期也存在类似的问题,更复杂的是,即使是组件的顺序也不总是一致的——例如,在塞浦路斯,2003 年 2 月 1 日通常写为“1/2/03”,而在日本同一日期通常会写成“2003 年 02 月 01 日”——即使是数字,但语言环境不同,例如,使用什么标点符号作为小数分隔符和千位分隔符。
因此,区分 HTML 和表单提交中使用的时间、日期和数字格式非常重要,这些格式始终是本规范中定义的格式(并基于完善的 ISO 8601 计算机可读日期和时间格式标准),来自浏览器呈现给用户并被浏览器接受为用户输入的时间、日期和数字格式。
“在线”使用的格式,即在 HTML 标记和表单提交中,旨在实现计算机可读和一致,而与用户的区域设置无关。例如,日期总是以“YYYY-MM-DD”的格式书写,如“2003-02-01”。预计用户永远不会看到这种格式。
然后,页面以有线格式给出的时间、日期或数字在显示给用户之前被转换为用户的首选表示形式(基于用户偏好或页面本身的区域设置)。类似地,在用户使用他们喜欢的格式输入时间、日期或数字后,用户代理在将其放入 DOM 或提交之前将其转换回有线格式。
这允许页面和服务器上的脚本以一致的方式处理时间、日期和数字,而无需支持数十种不同的格式,同时仍然支持用户的需求。