safari中new Date()的坑
今天突然被告知mac上报错—input invalid;据说是兼容性问题,只在windows上写过小代码的我有些慌呀,暗自祈祷希望是后台的问题,结果经过一段时间的排查发现,果不其然,在一个接口传参中—start_time:NaN-NaN1-NaN;后台说数据格式一定要yyyy-MM-dd而不能是yyyy/MM/dd,因为"/"是特殊字符,然后网上查资料发现了就是yyyy-MM-dd的坑:
- 在IOS5以上的版本Safari浏览器支持new Date('2018-07-16');
- 在IOS5版本及以下的Safari浏览器是不支持的,其函数返回结果是Invalid Date,要正确解析日期要写成new Date('2018/07/16');
兼容safari的iso日期格式
function getDate(timestr){
if(!timestr) return new Date();
var arr = timestr.split(/[-:\s\/]/);
return new Date(arr[0], arr[1]-1, arr[2], arr[3] || 0, arr[4] || 0, arr[5] || 0);
}
网友评论