我有以下JavaScript代码段,用于呈现从当前月份到去年同一月份的日期范围:
var today = new Date();
var endDate = new Date(today.getFullYear(), today.getMonth(), 1);
var startDate = new Date(endDate.getYear() - 1, endDate.getMonth() - 1, 1);
在IE 8中,它为我提供了正确的日期范围:
2012年6月1日星期五10:00:00 MST 2013年7月1日星期一星期一00:00:00 MST
当我在Chrome中运行相同的代码时,得到以下日期范围:
MST 6月01日0112 00:00:00-2013年7月1日星期一
开始日期的年份是0112。为了在IE和Chrome中获得正确的日期范围,我需要怎么做?
最佳答案
为了在IE和Chrome中获得正确的日期范围,我该怎么办?
对getFullYear()
和endDate
使用startDate
:
var startDate = new Date(endDate.getFullYear() - 1, endDate.getMonth() - 1, 1);
getYear()
旨在返回短年份-96
的1996
。但是,它的行为因浏览器的不同而有所不同,其日期为1900年代以外的年份。具体来说,IE 4 - 8模仿
getFullYear()
其他年份:在通过Internet Explorer 8标准模式的Internet Explorer 4.0中,公式取决于年份。对于1900年至1999年,返回的值是2位数字值,即存储的年份减去1900年。对于超出该范围的日期,将返回4位数字的年份。例如,1996返回为96,但是1825和2025原样返回。
IE9返回到您在Chrome中目睹的standardized behavior位置(伪代码):
getYear() == getFullYear() - 1900
关于javascript - 呈现日期的差异-IE JavaScript与Chrome JavaScript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17795970/