new Date(date).getTime()不兼容苹果手机和IE

哈哈,今天愚人节..bug就来了..

之前做了嵌入手机端的网页,就在网页端模拟调试,做了选择时间段的查询功能,就需判断格式和结束时间大于等于初始时间,在电脑和安卓手机都能正常判断,结果同事拿来苹果手机让我蒙蔽了一圈,出现手机自带的选择下拉框的情况,点击确定后却出现我自定义的错误,出现原因可能就有两个,一是没有获取到值致使返回格式不正确,二是结束时间大于初始时间方法写错.

而在电脑端这几个值都能明确的得到,这让我很蒙蔽啊,手机端我又没发调试...开始就关注这自带的下拉框选择没有拿到值,就如下绑定事件

$(document).on('change',"select[name='s_year']",function(){
    $(this).prop('value',$(this).val());
});

得到的还是呵呵呵...

最后强制写alert事件,在手机端看看这几个值到底拿到没,让我惊喜而意外的是看到了开始时间和结束时间"NaN";之前我是

var s_time = sy+'-'+sm+'-'+sd;
var e_time = ey+'-'+em+'-'+ed;
var start = new Date(s_time.replace('-', '/'));
var end = new Date(e_time.replace('-, '/'));

在苹果手机出现的结果是"NaN"在IE上也出现类似情况

解决方案:

var start = new Date(s_time.replace(/-/g, '/'));
var end = new Date(e_time.replace(/-/g, '/'));
//正则格式,全局替换

搞定..

感谢百度tv,感谢提供方案网友tv,感谢xxtv...

原文地址:https://www.cnblogs.com/xiaolanschool/p/10635851.html