在 Firefox 和 Internet Explorer 中解析 DateTime 字符串失败,适用于 Chrome

Posted

技术标签:

【中文标题】在 Firefox 和 Internet Explorer 中解析 DateTime 字符串失败,适用于 Chrome【英文标题】:Parsing DateTime string fails in Firefox And Internet Explorer, works on Chrome 【发布时间】:2014-02-01 11:21:21 【问题描述】:

我有一个从 SQL 数据库到我的 javascript 函数的日期时间字符串。

2013-12-31 09:09:49

Chrome 似乎可以毫无问题地解析它,但 Firefox 和 IE 会返回 NaN。

为什么会这样?

如果有什么不同,我使用的是 SQLServer 2012。

【问题讨论】:

Convert mysql DateTime stamp into JavaScript's Date format的可能重复 【参考方案1】:

SQL 创建日期字符串的方式(例如使用getdate())似乎与 javascript 处理日期时间字符串的方式不同。

Mozilla 开发网络 says 日期时间字符串可以在 ISO 8601 format 中。

这种格式被列为2011-10-10T14:48:00,而您的SQL 字符串看起来像2011-10-10 14:48:00

要使其成为 JS 有效的日期时间字符串,只需将空格替换为 T。

这样做的一种方法是

var dateTime = "2013-12-31 09:09:49";
var jsValidDateTime = dateTime.split(" ").join("T");
Date.parse(jsValidDateTime); //output: 1388498989000

此信息自 Firefox 26 和 Internet Explorer 11 起有效。

【讨论】:

这适用于 EcmaScript 5,因此旧版浏览器可能不支持。

以上是关于在 Firefox 和 Internet Explorer 中解析 DateTime 字符串失败,适用于 Chrome的主要内容,如果未能解决你的问题,请参考以下文章

网页字体不会在 Firefox 和 Internet Explorer 中加载到第一页

url 编码在 Firefox 和 Internet Explorer 中的行为不同

Internet Explorer 和 Firefox 上的 YouTube IFrame API

Internet Explorer/Firefox 中的硬刷新和 XMLHttpRequest 缓存

无法让跨域 getJSON 调用在 Internet Explorer 上运行,在 Firefox 上运行良好,在 IE 和 Firefox 的单个域上运行

在 Firefox 和 Internet Explorer 中解析 DateTime 字符串失败,适用于 Chrome