new Date()转换字符串日期在iOS移动端问题

new Date() 转换带 “-” 的字符串时,在 iOS 移动端(目前仅测试了移动端)会返回invalid,当使用 dateObj调用getTime()获取时间戳时,虽不会报错,但是很有可能导致bug

const date = '2022-10-10 10:10:10'
const dateObj = new Date(date) // invalid

方法一:使用replaceAll(/\-/g)替换所有“-”

const date1 = '2022-10-10 10:10:10'
const date2 = date1.replaceAll(/\-/g, '/')	// '2022/10/10 10:10:10'

replaceAll() 方法有兼容性问题,低版本浏览器用不了

可以用粗暴点的 .split('-').join('/') 也行

方法二:使用 moment 或者 dayjs 第三方库转换

import moment from 'moment/moment'

const date1 = '2022-10-10 10:10:10'
const data2 = new Date(moment(date1))

data2.getTime()

moment() 方法转换后的对象,仍可以直接作为参数传给 new Date()

你可能感兴趣的:(JavaScript,javascript,前端)