一开始赋默认值的时候是这样赋值的,但是在Safari中不展示默认值
const now = moment().format('YYYY-MM-DD 23:59:59')
const subtract7 = moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00')
// 一开始是这样赋值的
createTimeMillis: [(new Date(subtract7)).getTime(), (new Date(now)).getTime()]
按照常规操作 : Safari不能解析YYYY-MM-DD HH:MM:SS格式,会返回NAN
为了解决这个问题,您可以将日期时间字符串中的空格替换成字母 "T",以符合 ISO 8601 标准格式。ISO 8601 标准格式的日期时间字符串是以字母 "T" 分隔日期和时间的,例如 "YYYY-MM-DDTHH:MM:SS"。
例如:
var datetime = "2022-08-01 12:30:00";
var isoDatetime = datetime.replace(" ", "T");
var timestamp = new Date(isoDatetime).getTime();
既然这样,我们只需要在上面默认赋值的地方加上.replace(' ', 'T') 即可
const now = moment().format('YYYY-MM-DD 23:59:59').replace(' ', 'T');
const subtract7 = moment().subtract(7, 'days').format('YYYY-MM-DD 00:00:00').replace(' ', 'T');
// 一开始是这样赋值的
createTimeMillis: [(new Date(subtract7)).getTime(), (new Date(now)).getTime()]
Safari 默认值显示正常