处理日期字符串在不同浏览器中的差异
在现代浏览器中,直接将字符串传递给Date对象是可行的,但在IE浏览器下会出现特殊情况。
普通浏览器下的实现:
var date = new Date("2011-11-07"); IE浏览器的处理方式特殊,直接使用上述代码会返回NaN值。
IE浏览器下的日期处理解决方案
为解决IE浏览器的特殊性,建议使用自定义函数进行日期处理。
function NewDate(str){ var parts = str.split('-'); var date = new Date();
date.setUTCFullYear(parts[0], parts[1] - 1, parts[2]);
date.setUTCHours(0, 0, 0, 0);
return date;
}
此函数通过分解日期字符串并手动设置时间参数来实现日期的正确处理。
包含时间的日期处理
如果需要同时处理日期和时间,同样可以通过类似的方式实现。
function newDateAndTime(dateStr){ var datePart = dateStr.split(" ")[0].split("-"); var timePart = dateStr.split(" ")[1].split(":"); var r = new Date();
r.setFullYear(datePart[0], datePart[1] - 1, datePart[2]);
r.setHours(timePart[0], timePart[1], timePart[2], 0);
return r;
}
该函数首先处理日期部分,然后分别设置小时、分钟和秒部分。
转载来源:https://my.oschina.net/u/217063/blog/146019