Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期().setDate()行为不一致_Javascript_Date - Fatal编程技术网

Javascript 日期().setDate()行为不一致

Javascript 日期().setDate()行为不一致,javascript,date,Javascript,Date,据 我应该在代码中使用setDate() 现在将更改为上个月的最后一天 这意味着我应该能够做这样的事情: now.setDate(0).setDate(1) 获取上个月第一天的日期 但身份证不是那样工作的 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

我应该在代码中使用setDate()

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

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

now.setDate(0).setDate(1)
获取上个月第一天的日期

但身份证不是那样工作的

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();
now.setDate(0);


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

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

我已经阅读了ECMA规范中setDate()函数的定义,没错,该函数返回时间戳。但是,它打破了函数方法:(但是有一个很棒的库,它为您提供了实际的对象和方法,可以链接。
var now = new Date();
now.setDate(0);
var now = new Date().setDate(0);
var now = new Date();
now.setDate(0);
console.log(now.getTime());