在uniapp的开发过程中发现,真机测试时IOS 15及以下版本对于 'yyyy-MM-dd hh:mm:ss' 字符串转换为时间格式时会报错,以下为事例请参考
IOS 16及以上版本:
let date = new Date('1970-01-01 08:00:00')
connsole.log(date) // 输出结果为 Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
IOS 15及以下版本:
let date = new Date('1970-01-01 08:00:00')
connsole.log(date) // 输出结果为 NaN
原因: iOS低版本系统上的JavaScript引擎不兼容 'yyyy-MM-dd hh:mm:ss'字符串格式转换为时间格式,导致new Date()构造函数无法正确解析日期。
解决方式有两种:
1、替换时间字符串中的 '/' , 如下
let dateStr = '1970-01-01 08:00:00'
let newDateStr = dateStr.replace(/-/g, '/') // 替换后结果 1970/01/01 08:00:00
let date = new Date(newDateStr)
console.log(date) // 输出结果为 Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
2、在日期与时间中间添加 'T'
let dateStr = '1970-01-01T08:00:00'
let date = new Date(dateStr)
console.log(date) // 输出结果 Thu Jan 01 1970 08:00:00 GMT+0800 (中国标准时间)
如果有什么不对的地方欢迎大家指正