Safari中的日期对象

时间:2015-10-10 21:47:10

标签: javascript

我正在使用safari 8.0,我尝试做

 new Date('sat-oct-10-2015');

在chrome上,结果是具有正确日期的Date对象。但在safari上,结果是

 Invalid Date

如何在safari中使用此格式的日期?

4 个答案:

答案 0 :(得分:1)

始终尝试使用ECMAScript ISO格式指定的standard date format

Date.parse(),即使用标准字符串格式,Date构造函数将始终产生预期结果。此外,浏览器可能支持其他字符串格式,但所有其他浏览器供应商可能不支持。

答案 1 :(得分:1)

使用“人类可读”字符串创建Date对象时,必须使用某种格式,通常符合RFC2822或ISO 8601.

可能是浏览器能够处理您的new Date('sat-oct-10-2015');,但规范并不要求这样做。

提示:查看some other ways以创建日期对象,例如使用Unix时间戳。这比dateString方法更容易,更可靠。

答案 2 :(得分:1)

不要使用Date构造函数(或 Date.parse )来解析字符串。在ES5之前,解析日期字符串完全取决于实现。之后,已经指定了ISO 8606的长形式,但是其部分内容随ECMAScript 2015而改变,因此即使使用指定的格式在浏览器中也不一致(例如2015-10-15 12:00:00可能会导致3种不同的结果在当前使用的浏览器中。)

解决方案是手动解析日期字符串,编写自己的函数(如果只需要支持一种格式就不难)或使用小型库。

答案 3 :(得分:0)

我建议在JavaScript中使用moment.js日期。然后你可以用

简单地解析日期
moment('sat-oct-10-2015', 'ddd-MMM-DD-YYYY').format();

时刻API在所有主流浏览器中都有很好的支持,并且可以简化日期操作和JavaScript显示。