Date()。setDate()不一致的行为

时间:2014-07-09 15:46:47

标签: javascript date

根据

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/setDate

我应该期望代码中的setDate()

var now = new Date();
now.setDate(0);

现在更改为上个月的最后一天。

这意味着我应该能够做到这样的事情:

now.setDate(0).setDate(1)

获取上个月第一天的日期。

但是id并不像那样。

var now = new Date();
console.log(now)
// FF 24: Date {Wed Jul 09 2014 16:35:49 GMT+0100 (IST)}

now.setDate(0);
console.log(now)
// FF 24: Date {Mon Jun 30 2014 16:35:49 GMT+0100 (IST)}

但是

var now = new Date().setDate(0);
console.log(now)
// 1404142784241

问题:

之间有什么区别
var now = new Date();
now.setDate(0);

var now = new Date().setDate(0);

1 个答案:

答案 0 :(得分:1)

在第二个示例中,您要查看.setDate()函数的返回值,而不是日期本身。 .setDate()函数返回与更新的对象值对应的时间戳值。它就像这样做:

var now = new Date();
now.setDate(0);
console.log(now.getTime());