javascript日期对象的参数与文档不同?

javascript日期对象的参数与文档不同?,javascript,date,Javascript,Date,我在文章中读到,对于Date对象,month参数是以零为基础的。但不知怎么的,我的代码并没有返回以零为基础的月份。。是因为我的电脑的设置吗?浏览我的网站时会影响其他用户吗 我正在尝试获取上个月的日期对象 我尝试的是: var mydate = new Date(2017, 11, 1); // result: Date 2017-11-30T17:00:00.000Z var mydate = new Date(2017, 12, 1); // result: Date 2017-12-31T1

我在文章中读到,对于Date对象,
month
参数是以零为基础的。但不知怎么的,我的代码并没有返回以零为基础的月份。。是因为我的电脑的设置吗?浏览我的网站时会影响其他用户吗

我正在尝试获取上个月的日期对象

我尝试的是:

var mydate = new Date(2017, 11, 1); // result: Date 2017-11-30T17:00:00.000Z
var mydate = new Date(2017, 12, 1); // result: Date 2017-12-31T17:00:00.000Z
var mydate = new Date(2018, 0, 1); // result: Date 2017-12-31T17:00:00.000Z

从参数的注释部分的文档中-

注意:如果Date作为具有多个参数的构造函数调用,则指定的参数表示本地时间。如果需要UTC,请使用具有相同参数的新日期(Date.UTC(…)

var mydate=新日期(Date.UTC(2017,11,1));
console.log(mydate);
var mydate=新日期(UTC日期(2017年12月1日));
console.log(mydate);
var mydate=新日期(UTC日期(2018,0,1));

console.log(mydate)来自参数的注释部分中的文档-

注意:如果Date作为具有多个参数的构造函数调用,则指定的参数表示本地时间。如果需要UTC,请使用具有相同参数的新日期(Date.UTC(…)

var mydate=新日期(Date.UTC(2017,11,1));
console.log(mydate);
var mydate=新日期(UTC日期(2017年12月1日));
console.log(mydate);
var mydate=新日期(UTC日期(2018,0,1));

console.log(mydate)您面临的问题不是因为如何返回日期,而是因为您的本地时间比UTC早7小时,这导致返回的日期(以UTC为单位)显示为前一天下午5点[17:00:00.000Z]
(如果不指定时间,则将时间保存为00:00:00.000Z)解决问题的方法是将所有时间转换为单个时区。如果您对所有值使用相同的时区,则不会对访问您网站的用户产生任何影响。

您面临的问题不是因为日期的返回方式,而是因为您的本地时间比UTC早7小时,这导致返回的日期(UTC)显示为前一天下午5点[17:00:00.000Z]
(如果不指定时间,则将时间保存为00:00:00.000Z)您的问题的解决方案是将所有时间转换为一个时区。如果您对所有值使用相同的时区,则不会对访问您网站的用户产生任何影响。

请再次检查有问题的示例。。我从未编写过任何导致
2018-01-01
…@dapidmini的内容,这些内容用于s的输出我的答案中的第二个控制台:)哦,我明白了。../result:Date 2017-12-31T17:00:…
为什么写在你的答案中?@dapidmini我的错我只是从你的问题中复制了它,忘了删除它。我刚刚更新了它。请再次检查问题中的示例mini那是我回答中第二个控制台的输出:)哦,我明白了..那你为什么在你的回答中写
../result:Date 2017-12-31T17:00:…
?@dapidmini我的错我只是从你的问题中复制了它,忘了删除它。我刚刚更新了它。你引用的是MDN,规范性文档是;-)你引用的是MDN,是MDN格式文档是。;-)