场景重现:
最近公司开发移动端添加直播,设置开播及下播时间,使用微信提供的日期,时间选择器,返回的value为 ‘2020-01-01’ 及 ‘10:00’ 格式。由于接口需要上传时间戳,因此使用下面函数生成。
getTime(dateString) {
var date = new Date(dateString);
return Math.round(date.getTime() / 1000); // 生成十位数时间戳返回
},
开开心心交完需求后,测试说苹果手机一直出问题,安卓却没有问题,前端新人抓耳挠腮。多重检测发现是这个函数出现了问题。苹果手机返回的数据是NaN。打印了date发现苹果返回 valid Date 。查了资料才发现苹果new Date()函数不支持‘2020-01-01’格式日期。需为‘2020/01/01’格式。因此修改函数为:
getTime(dateString) {
// 苹果手机new Date()不支持‘2020-01-01’格式,需转换为‘2020/01/01’
dateString = dateString.toString().replace(/-/g, "/");
var date = new Date(dateString);
return Math.round(date.getTime() / 1000);
},
吐槽,既然ios系统不支持 ‘-’ 的时间格式,选择器怎么不返回 ‘/’ 格式。┐(‘~`;)┌