在 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 的单个域上运行