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

标签 javascript

当我运行此代码时,第一个日期显示为 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/

相关文章:

javascript - 使用 cookie 插件从图像点击触发复选框点击

Javascript 与 Css 特异性与内联样式

php - JavaScript 中的 == 与 ===

javascript - 在 PHP 生成的特定行 ID 之前追加

javascript - 检索包含深入信息的正则表达式结果

javascript - SailsJS 将对象/变量传递给布局 View 的正确方法

javascript - 如果 scrollTop 等于 0,则覆盖向上/向下滚动功能

javascript - 根据 AngularJS 中的条件从数组中添加和删除项目

javascript - 将 Javascript If 语句构造为在函数中同步的最佳方法

JavaScript,Matter.js : Increase radius of circle