本文详解JavaScript中Date对象在不同浏览器尤其是IE环境下的兼容性问题。通过示例代码展示如何避免使用字符串构造函数,推荐统一使用带参构造函数或时间戳方式创建日期对象,以确保跨浏览器环境下的日期解析一致性与准确性。
代码复制结束
Date对象兼容性问题与解决方案
具体实现代码如下所示:
function NewDate(str) { str = str.split('-');
var date = new Date();
date.setUTCFullYear(str[0], str[1] - 1, str[2]);
date.setUTCHours(0, 0, 0, 0);
return date;
}因此,为了确保代码在各个浏览器中具备良好的兼容性,特别是针对Internet Explorer(IE)浏览器的支持,在创建Date对象时建议统一采用特定的构造函数形式。
new Date(year, month, day, hour, minute, sec, millsec)
或者
new Date(millsec)(其中millsec表示距离1970年1月1日至今的毫秒数)。
在IE浏览器环境下,若使用new Date("date text")这种字符串格式构造函数,返回的日期对象表现异常。IE调试器可能将其显示为NaN(非数字),且对该对象调用返回Number类型的方法时,通常也会返回NaN。