簡體   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