ios15的safari中newDate()无法正确识别日期字符串的问题
近期在做一个uni的项目,其中,需要根据一个日期区间,判断当前日期是否在这个区间内。比如如下json:
{
"black_white": {
"start": "2022-11-30 09:30:30",
"end": "2022-12-01 13:00:00"
}
}
使用如下函数:
// 判断当前日期是否在区间内
export function checkDateArea(beginDateStr, endDateStr) {
let curDate = new Date().getTime();
let beginDate = new Date(beginDateStr).getTime();
let endDate = new Date(endDateStr).getTime();
const result = (curDate > beginDate && curDate <= endDate);
if (result) {
return true;
}
return false;
}
应用:
const isBlackWhite = checkDateArea(json.black_white.start, json.black_white.end);
比如使用“2022-12-01 13:00:00”的时候,在ios中的safari中:
new Date('2022-12-01 13:00:00').getTime();
得到的就是NaN。
UNIAPP使用的就是你当前IOS手机的webkit内核,所以测试uniapp打包后的app可以先打包个H5,在safari上查看效果,基本与实际app的效果一致。
但是使用newDate('2022/12/0113:00:00').getTime(); 就会得到正确的时间戳。
所以,当在js中将字符串转化为时间戳的时候,最好使用"/",如果使用"-",切记必须在ios16以上的版本使用,经过测试ios16以上的版本可以正确的识别出newDate('2022-12-0113:00:00').getTime(); 如果非要使用"-",那么记得使用字符串替换一下,然后再转换成时间戳。