写js时候发现,在ie8下不支持new Date('2017-07-05')这样的写法,总是提示NaN,但是在谷歌浏览器可以正常运行。下面总结了一个兼容IE7,IE8的new Date()解决方法,有类似问题的朋友可以做个参考。
function _getDate(year,month,day){ var today = new Date(year,month-1,day); var yesterday_seconds = today.getTime()-1000*60*60*24; var yesterday = new Date; yesterday.setTime(yesterday_seconds); var y = yesterday.getFullYear(); var m = yesterday.getMonth()+1; var d = yesterday.getDate(); if(m < 10){ m = "0"+ m; } if(d < 10){ d = "0" + d; } var stryesterday = y + "" + m + "" + d; return stryesterday; }
当然,你也可以将日期 '2017-07-05' split('-')下,转成数组arr后,再new data(arr[0],arr[1]-1,arr[2]," "," "," ")。月份要减一,时分秒为空,则默认为零。
但是这样已经把时间当成字符串处理,已经脱离日期本质了,不太推荐。
以上代码亲测可用,这样就解决了在IE下不支持new Date()的问题。