预期new Date('1723968910059') 可转为yyyy/mm/dd
结果:调用时间转换函数报错,返回 NaN/Na/Na
出现问题就是new Date(), 括号里使用了字符串的数值
const date = new Date('1723968910059')
consloe.log(date) // 输出:Invalid Date
正常情况
1. Date 构造函数的使用
使用数字(时间戳)
如果你传递一个数字给 Date 构造函数,它会将其解释为自 1970 年 1 月 1 日 UTC(Unix 纪元)以来的毫秒数。例如:
let timestamp = 1723968910059;
let date = new Date(timestamp);
console.log(date.toString()); // 输出: 合法的日期字符串
使用字符串
如果你传递一个字符串,它需要是一个有效的日期格式,或者可以被解析为有效的日期。例如:
let date1 = new Date('2024-08-18T00:00:00Z');
console.log(date1.toString()); // 输出: 合法的日期字符串
2. 为什么 new Date('1723968910059') 会有问题
- 字符串解析:
new Date('1723968910059')中的'1723968910059'是一个字符串,而不是一个可以被解析的日期格式。这会导致Date构造函数不能正确解析字符串。
let timestamp = parseInt('1723968910059', 10);
let date = new Date(timestamp);
console.log(date.toString()); // 输出: 合法的日期字符串
3. 解决方法
确保你传递的是正确的格式。如果你的时间戳是以字符串形式存储的,你需要将其转换为数字,或者直接传递数字:
// 将字符串转换为数字
let timestamp = Number('1723968910059');
let date = new Date(timestamp);
console.log(date.toString()); // 合法的日期字符串