我尝试将日期设置为午夜,以简化日期操作,为此,我编写了以下代码部分:

var now = new Date();
today = now.setHours(0,0,0,0);
console.log(now, today);

我很惊讶地看到now包含一个Date对象,而today包含一个时间戳。当我想使用getMonth()或其他日期的函数时,这会带来错误。用时间戳重新创建Date对象是很有意义的。

正常吗我怎样才能解决这个问题?

(随时更新我的​​帖子以纠正我的英语不好:)

最佳答案

正常吗?

是的

如何解决此问题?

您正在将now.setHours(0,0,0,0)的返回值分配给today

也许您正在寻找的是这样的:

var now = new Date();

var today = new Date();
today.setHours(0,0,0,0);

这样,setHours就会作用在您希望设置小时数的值上。这是使用setHours的主要方式。

其他详细信息
  • specification似乎没有提到返回值。其他网站,例如w3schools也可以。
  • 尽管执行类似的Chromium setHours source不会返回该值,但other functions显示正在返回的值。我假设在chrome的date.js中找到的SET_LOCAL_DATE_VALUE函数正在将值分配给第一个参数。
  • 关于javascript - setHours()将我的Date对象转换为字符串时间戳,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33313209/

    10-11 08:05