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 错误,实现了不同浏览器之间日期处理的一致性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3