Safari对Date.parse()的需求更严格

作者: shisaq 日期: November 15, 2016

最近应老婆的需求,做了一个炒鸡简单的倒计时网页附上源码。没什么功能,连deadline都需要从后台写。不过至少能开始一个百天计划了。以后酌情优化。

但是使用的时候,大多数浏览器都木有问题,只有Safari默默地罢工了。本应该显示日期、时、分、秒的地方,它统统显示为NaN(如下图)

[caption id=”” align=”aligncenter” width=”689”]错误截图 错误截图[/caption]

最后发现我写入deadline的格式不太标准,我写成了:

var deadline = 'Thu, Feb 22 2017 23:59:59 GMT -0500';

多了一个空格。正确的写法应该是:

var deadline = 'Thu, Feb 22 2017 23:59:59 GMT-0500';

修改后,终于正常显示了:

[caption id=”” align=”aligncenter” width=”703”]正常数字 正常数字[/caption]

附上MDN关于日期解析的页面,供以后参考;同时StackOverflow上的一个问答也说明了Chrome和Safari对日期解析的处理可能也有所不同。不过这个问答已经是5年前的了,可能只是历史问题而已。至少现在只要按MDN推荐的格式来写,就不会有问题。