IE 日期构造函数问题:NaN 与其他浏览器中的功能
在涉及 JavaScript 日历开发的项目中,日期处理中出现了差异Internet Explorer (IE) 以及 Firefox 和 Chrome 等浏览器。具体来说,IE 的日期函数产生 NaN(非数字)值,而它们在其他浏览器中正常运行。
经过调查,很明显根本原因与所使用的日期格式有关。相关函数 buildWeek() 旨在根据以“m, d, Y”格式提供的星期一日期(例如“02, 01, 2010”)生成日历周的标题日期。然而,在 IE 中,这种格式无法被正确识别,从而导致 NaN 问题。
为了解决这种差异,采用了不同的方法。日期字符串不依赖给定的格式,而是使用 split(" ") 将其拆分为各个组成部分(日期和时间)。随后,使用 split("-") 将日期组件进一步拆分为其组成部分(年、月、日),并使用 split(":") 将时间组件进一步拆分为其组成部分(小时、分钟、秒) .
然后使用这些解析值构造了 Date 的实例。事实证明,该方法兼容所有浏览器,确保了 IE、Firefox 和 Chrome 的日期处理一致。
var dateStr = "2011-08-03 09:15:11"; //returned from mysql timestamp/datetime field var a = dateStr.split(" "); var d = a[0].split("-"); var t = a[1].split(":"); var date = new Date(d[0], (d[1] - 1), d[2], t[0], t[1], t[2]);
通过采用该方法,成功消除了 IE 中的 NaN 错误,实现了跨浏览器的一致日期处理。不同的浏览器。
以上是为什么 IE 日期构造函数与 Chrome 和 Firefox 日期处理不同?的详细内容。更多信息请关注PHP中文网其他相关文章!