繁体   English   中英

new Date()在不同环境中的行为不同,为什么?

[英]new Date() behaves differently in different environment, why?

当我在Chrome中定义相同的日期时,它会显示预期的结果。 但是当我在node.js中运行它时,代码如下:

 var date = new Date(2015, 1, 1); console.log(date); // it displays: 2015-01-31T16:00:00.000Z 

我的问题是为什么不2015-02-01

这是时区问题。 在Chrome浏览器中,打印日期和时间会根据您当地的时区信息进行调整。 但是在您打印的Node.js中的日期,它的字符串格式是ISO字符串,没有调整时区值。

因此,两个new Date(2015, 1, 1) 2015,1,1 new Date(2015, 1, 1)在Chrome和Node.js中具有相同的值。

尝试console.log(date.toLocaleDateString()) 您会得到2015-2-1。

您只是在打印日期对象

var date = new Date(2015, 1, 1)
console.log(date); 

有关更深入的说明,请检查:

https://www.w3schools.com/js/js_date_formats.asp

另外,如果您的目标是使用2015-02-01这种格式,请查看https://momentjs.com/ 对于您的情况:

(使用moment.js)

moment(new Date(2015, 1, 1)).format('YYYY-MM-DD') // "2015-02-01"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM