new Date(new Date().toLocaleDateString()).getTime() 返回NaN
时间: 2023-11-17 10:52:33 浏览: 97
`new Date().toLocaleDateString()` 返回的是一个本地日期字符串,不包含时间信息。然后你将这个字符串作为参数传递给 `new Date()` 构造函数,它会尝试将字符串转换为日期对象。由于缺少时间信息,它会默认添加一个时间部分为午夜(00:00:00)。
然而,`new Date()` 构造函数在将日期字符串转换为日期对象时是非常严格的。如果传递的日期字符串不符合特定的格式要求,它可能会返回 `Invalid Date` 或者 `NaN`。
在这种情况下,`new Date(new Date().toLocaleDateString())` 可能返回 `Invalid Date` 或者 `NaN`,这取决于你所使用的浏览器或 JavaScript 引擎的实现方式。
要解决这个问题,你可以使用其他方法来获取日期的时间戳。例如,你可以使用 `Date.now()` 方法来获取当前日期的时间戳,而不需要进行额外的转换。
```javascript
const timestamp = Date.now();
console.log(timestamp); // 输出当前日期的时间戳
```
请注意,`Date.now()` 方法返回的时间戳是基于协调世界时(UTC)的,它是距离 1970 年 1 月 1 日午夜(UTC)的毫秒数。如果你需要基于本地时区的时间戳,可以使用 `getTime()` 方法:
```javascript
const timestamp = new Date().getTime();
console.log(timestamp); // 输出当前本地日期的时间戳
```
阅读全文