由于js运行环境不一致(引擎),导致苹果设备相关时间没有达到预期效果,这里做一个备份。
xxxx-xx-xx xx:xx:xx形式
// 类似 2016-06-08 12:30:05
// 这种时间iOS并不兼容,出现未定义的时间格式 所以用下面的函数转一下成2016/06/08再使用Date对象就可
function formatStr(str) {
return str.replace(/-/g,"/");
}
ISO 8601标准格式
// 类似 "2021-03-04T03:02:40.278Z" "2021-03-04T11:03:20+08:00" 等符合iso 8601标准格式的表示法(但是要区分是否加了时区)
// 这种时间直接用 new Date()格式化失败 iOS并不兼容,出现未定义的时间格式NaN
// 所以我们需要知道格式的含义,写一个截取方法就可以了
function isoTimeFormat (time){
let date = time.substr(0, 10); //年月日
let hours = time.substring(11, 13);
let minutes = time.substring(14, 16);
let seconds = time.substring(17, 19);
let timeFlag = date + ' ' + hours + ':' + minutes + ':' + seconds;
timeFlag = timeFlag.replace(/-/g, "/");
timeFlag = new Date(timeFlag);
timeFlag = new Date(timeFlag.getTime() + 8 * 3600 * 1000).getTime();// 这里加了东八时区
return timeFlag;
}
// 我这里只需要时间戳形式,所以返回了时间戳