我正在使用safari 8.0,我尝试做
new Date('sat-oct-10-2015');
在chrome上,结果是具有正确日期的Date对象。但在safari上,结果是
Invalid Date
如何在safari中使用此格式的日期?
答案 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显示。