gpt4 book ai didi

javascript - 更改 Date.UTC() 中的月份数字会导致时区更改

转载 作者:行者123 更新时间:2023-12-03 03:26:00 26 4
gpt4 key购买 nike

当我运行此代码时,第一个日期显示为 GMT,第二个日期显示为 BST。为什么是这样?对 Date.UTC 的调用除了更改了一个数字(即月份数字)之外,其他都是相同的。对我来说,这不应该改变时区。请注意,我现在在伦敦,所以不知何故第二次约会似乎回到了本地时间。为什么两个不同日期的时区不同?

var date1 = new Date(Date.UTC(2005,0,5,4,55,55));
alert(date1); // Wed Jan 05 2005 04:55:55 GMT+0000 (GMT)
var date2 = new Date(Date.UTC(2005,5,5,4,55,55)); // <-- 0 has been replaced by 5
alert(date2); // Sen Jun 05 2005 05:55:55 GMT+0100 (BST)

最佳答案

使用 Date.UTC(),仅影响使用 UTC 设置日期。

默认 Javascript 日期使用本地时间显示。

因此,如果您希望查看 UTC 格式的日期,。您不能只使用默认的 toString() 实现,因为它将使用本地时间版本。

但是您可以做的是使用 UTC 变体进行显示。例如。 toUTCString() 以及 toISOString()

var date2 = new Date(Date.UTC(2005,5,5,4,55,55));

//if you say live in the UK, this date in localtime is
//British Summer Time,..
//eg. Sun Jun 05 2005 05:55:55 GMT+0100 (GMT Summer Time)
//if your running this script from another country
//your likely to see something different.
console.log(date2.toString());

//here we show the date in UTC, it will be same
//whatever country your running this from
//eg. Sun, 05 Jun 2005 04:55:55 GMT
console.log(date2.toUTCString());

//for an easier to parse date,
//eg. 2005-06-05T04:55:55.000Z
console.log(date2.toISOString());

关于javascript - 更改 Date.UTC() 中的月份数字会导致时区更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com