我从Web服务调用中获取"2011-01-27T04:59:00Z"
形式的日期字符串。 Firefox和Chrome使用var d = new Date("2011-01-27T04:59:00Z")
解析字符串没有问题,但Safari和IE不会代表它。
我可以自己解析字符串并将其提供给Date.parse()
或Date.UTC()
,但我想知道为什么(1)浏览器中存在像Date对象这样基本的东西,并且(2)为什么公共API会以Safari和(特别是)IE拒绝的格式返回日期字符串。
答案 0 :(得分:3)
对于你们两个问题,我会说
每条评论的更正:
Date.prototype.parse
的引入没有说明它应该支持的日期格式的规范。即使它在ECMAScript 3中标准化,规范也没有定义它应该支持的日期格式。在2009年12月,ECMAScript 5定义Date
应支持问题中指定的ISO 8601格式,但对于已发布的版本,在撰写本文时,只有Gecko / Firefox实现了该功能。 (Webkit已在我的测试中实现了夜间版本)date()
函数中的格式。在Internet开始时,协议用于花费时间的RFC 822/2822格式,这对于英语用户来说是人类可读的。