Javascript 在nodejs日期对象中设置日期将日期显示为不同的值

Javascript 在nodejs日期对象中设置日期将日期显示为不同的值,javascript,node.js,datetime,Javascript,Node.js,Datetime,当我使用下面的语句设置date对象时,输出在nodejs中显示不同。你能帮我理解为什么会这样吗。以及我需要如何传递以打印正确的值 var date1= new Date(2017,01,01); var date2= new Date(2017,01,31); console.log("2017-01-01 is printed as ==>",date1); console.log("2017-01-31 is printed as ==>",date2); 输出 2017-01

当我使用下面的语句设置date对象时,输出在nodejs中显示不同。你能帮我理解为什么会这样吗。以及我需要如何传递以打印正确的值

var date1= new Date(2017,01,01);
var date2= new Date(2017,01,31);
console.log("2017-01-01 is printed as ==>",date1);
console.log("2017-01-31 is printed as ==>",date2);
输出

2017-01-01打印为==>2017-01-31T18:30:00.000Z

2017-01-31打印为==>2017-03-02T18:30:00.000Z


月参数从0(一月)开始到11(十二月) 因此,如果您想获得2017-01-01,您需要使用:

var date1 = new Date(2017, 0, 1)

此处的更多信息:

像这样打印日志
console.log(“2017-01-01打印为==>”+date1);
console.log(“2017-01-31打印为==>”+date2)
将为您提供预期的日志

这是因为控制台日志在使用逗号时将日期作为日期对象,而在使用
+
时,它将
object.toString()
应用于日期对象。

在执行您的建议后,它仍然打印为相同的
var date1=新日期(2017,0,1);var date2=新日期(2017,0,31);console.log(“2017-01-01打印为==>”,日期1);console.log(“2017-01-31打印为==>”,日期2)输出2017-01-01打印为==>2016-12-31T18:30:00.000Z 2017-01-31打印为==>2017-01-30T18:30:00.000Z您可以尝试这样打印日志吗
console.log(“2017-01-01打印为==>”+date1);console.log(“2017-01-31打印为==>”+date2)?@TGW有区别吗?使用逗号的日志记录似乎工作相同。@使用逗号的StevenTang将此
date1
date2
作为对象传递给log方法,而使用
+
将调用日期对象上的object.toString并打印日期。因此,这种不同的行为。“在堆栈上”可能会给您更多解释。@TGW请您在“回答”部分更新此内容,以便我可以将此问题作为已回答的问题。