safari中的日期对象
Date object in safari
我用的是safari 8.0,我试着做
new Date('sat-oct-10-2015');
在chrome上的结果是日期对象与正确的日期。但是在safari中结果是
Invalid Date
如何在safari中使用此格式的日期?
不要使用Date构造函数(或Date.parse)来解析字符串。在ES5之前,日期字符串的解析完全依赖于实现。在此之后,ISO 8606的长格式已经被指定,但是ECMAScript 2015改变了部分格式,因此即使使用指定的格式在浏览器之间也不一致(例如,2015-10-15 12:00:00可能导致当前使用的浏览器中有3个不同的结果)。
解决方案是手动解析日期字符串,或者编写自己的函数(如果只需要支持一种格式,这并不困难)或使用小型库。
始终尝试使用ECMAScript ISO格式指定的标准日期格式。
如果使用标准字符串格式, Date.parse()
即Date构造函数将始终产生预期的结果。此外,浏览器可能支持其他字符串格式,但可能不是所有其他浏览器供应商都支持。
当创建具有"人类可读"字符串的Date
对象时,必须使用一定的格式,通常符合RFC2822或ISO 8601。
可能是浏览器能够处理您的new Date('sat-oct-10-2015');
,但这不是规格所要求的。
提示:看看创建日期对象的其他方法,例如使用Unix时间戳。这比dateString
方法更容易、更可靠。
我建议在JavaScript中使用moment.js表示日期。然后可以简单地用
解析日期moment('sat-oct-10-2015', 'ddd-MMM-DD-YYYY').format();
moments API在所有主流浏览器中都有良好的支持,并简化了使用JavaScript操作和显示日期。
相关文章:
- 比较从函数和生成的日期对象
- 如何获得一个只有时间的moment.js日期对象
- 使用moment.js获取时间分区的偏移日期对象
- 对象数组返回自最近日期以来的最高总体值
- JavaScript JSON关联对象键和值都作为日期时间戳
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 将某个时间格式转换为日期对象
- date对象未在javascript中返回正确的日期值
- 正在使用日期字符串初始化javascript日期对象
- 在CouchDB Map函数中发出日期时-对日期对象调用的内容
- 如何将事件的日期放入fullcalendar中的日期对象中
- 为什么在JavaScript中可以从另一个日期对象中减去日期对象
- 理解日期对象接收参数时的getDay()方法
- JS日期对象setUTCMonth()将月份增加2
- 时间-日期对象JavaScript getUTCMilliseconds
- 如何根据创建日期对对象进行排序,以插入Meteor的高图表
- JavaScript日期接收为像这次旅行一样的对象.日期:“/日期(1426530600000)/”;
- 将带有 AM/PM 的日期字符串转换为 javascript 日期对象
- Javascript排序对象日期
- MVC控制器返回JSON对象日期属性"Now"“帮助”