JavaScript new Date(string) 兼容大多数浏览器(2016 年 12 月)

标签 javascript

在 JavaScript 中创建新的 Date(string) 时,我一直在处理这个烦人的错误。我的问题是,有没有人为这个问题找到适用于大多数浏览器的更好/更标准化的解决方案?例如,我发现 IE9 不喜欢 .sss(毫秒),然后 Firefox 无法正确使用欧洲日期格式 (DD-MM-YYYY)。

让我知道你的想法!

最佳答案

根据 MDN:

Note: parsing of date strings with the Date constructor (and Date.parse, they are equivalent) is strongly discouraged due to browser differences and inconsistencies. Support for RFC 2822 format strings is by convention only. Support for ISO 8601 formats differs in that date-only strings (e.g. "1970-01-01") are treated as UTC, not local.

这同样适用于 Date.parse()。如果您害怕这种不一致(因为您的浏览器支持非常广泛,或者因为您处理来自外部源的数据),您总是可以使用完整的构造函数:

new Date(year, month, [day, hour, minute, second, millisecond])

括号之间的参数是可选的。如果您可以使用可靠的工具(例如 moment.js,正如您提到的)解析日期,那么您可以构建一个原生的 Date,而不会使用它。

很麻烦,不过打包成一个函数,以后再也不用看了。

关于JavaScript new Date(string) 兼容大多数浏览器(2016 年 12 月),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41123180/

相关文章:

javascript - 如何传播到 DURANDAL 由外部 JavaScript 框架(如 Google Charts)生成的点击事件

javascript - 通过更改底层数组动态更新 dom-repeat 模板

javascript - Json压缩传输

javascript - 在多个事件处理程序中访问 JQuery 对象

javascript - 为什么我的 javascript 时钟不工作?

javascript - Meteor 复选框组 - 至少选中一个复选框

java - 如何使用 Java 代码检查客户端浏览器中是否启用了 JavaScript

带有播放列表的 Javascript 音频

javascript - 隐藏/模糊的 SVG 动画是否仍会导致浏览器重绘和/或性能问题?

javascript - 填充在dojo和javascript中动态创建的html表