Date.parse()的兼容问题
今天做项目遇到在ie,firefox上比较时间出错,但在chrome上正常,于是查找原因,发现是由Date.parse()的兼容性导致
compareTime: function(strStartTime, strEndTime) { var objStartTime = Date.parse(strStartTime); var objEndTime = Date.parse(strEndTime); if (objStartTime <= objEndTime) { return true; } return false; }
parse():Date的静态方法,返回该时间距离1970/1/1的毫秒数
低版本IE 不支持Date.parse('2017-08-16 17:13:30') 支持Date.parse('2017/08/16 17:13:30')
火狐 不支持Date.parse('foot 2017'),此时返回NAN 可以用isNaN()来检测
Chrome 会将Date.parse('foot 2017')解析成Date.parse(' 2005')
最终解决方式
compareTime: function(strStartTime, strEndTime) { strStartTime = strStartTime.replace(/-/g, "/"); strEndTime = strEndTime.replace(/-/g, "/"); var objStartTime = Date.parse(strStartTime); var objEndTime = Date.parse(strEndTime); if (objStartTime <= objEndTime) { return true; } return false; }