现代浏览器传入完整ISO 8601字符串时使用new Date(string)是否可靠?
结论
完全可以可靠使用。
具体说明
- ES5及之后的ECMAScript规范已经明确约定了完整带时区标识的ISO 8601格式字符串的解析规则,2020年之后发布的所有现代浏览器(Chrome、Firefox、Safari、Edge等)均严格遵循该规范,不会出现解析结果不一致的问题。
你看到的相关兼容性警告主要是为了覆盖更广泛的使用场景,针对你限定的两个前提,这类警告并不适用。
- 常见的解析差异问题全部对应你梳理的三类场景:ES5之前的老旧浏览器、非ISO 8601格式输入、缺时区/缺时间的不完整ISO 8601输入,都和你限定的场景无关。
补充提示
如果输入的ISO 8601字符串没有携带明确的时区信息(比如末尾没有Z也没有+/-HH:MM偏移量),就算格式符合ISO 8601,仍然可能出现部分浏览器按UTC解析、部分按用户本地时区解析的差异,这种场景下就不建议直接使用new Date(string)。
内容的提问来源于stack exchange,提问作者Cam Jackson
相关产品推荐
相关产品推荐

