Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript getDay方法是否依赖于时区和本地时间?_Javascript_Date - Fatal编程技术网

javascript getDay方法是否依赖于时区和本地时间?

javascript getDay方法是否依赖于时区和本地时间?,javascript,date,Javascript,Date,其中提到: Javascript date getDay()方法根据本地时间返回指定日期的星期几 我无法理解为什么当地时间会影响该方法的输出 在我写这个问题的时候,它是 Tuesday, February 11, 2020 11:49:46 pm in Honolulu, Hawaii, USA and it is Wednesday, February 12, 2020 03:48:45 am in Houston, Texas, USA (我从《本地时报》上得到了这些消息)

其中提到:

Javascript date getDay()方法根据本地时间返回指定日期的星期几

我无法理解为什么当地时间会影响该方法的输出

在我写这个问题的时候,它是

Tuesday,   February 11, 2020  11:49:46 pm in Honolulu, Hawaii, USA and it is  
Wednesday, February 12, 2020  03:48:45 am in Houston, Texas, USA 
(我从《本地时报》上得到了这些消息)

因此,一个地区是星期二,另一个地区是星期三

虽然其中一个地区仍在周二,但事实是,在这两个国家,周三是2月12日

我能看到的唯一区别是,这两个地区中的一个将在2月12日晚一点到达

因此,无论当地时间如何,
新日期(2020年1月12日).getDay()
都应该返回
3
(星期三)。
为什么要写输出是根据当地时间进行的?

现在,如果你输入相同的日期,你可以期望输出是相同的,但在旧时代,有很多不同的时区,可能某个日期在某一点上是不同的一天。因此,根据当地时间的注释
可能仅对历史中的边缘情况有效

我可以向您介绍更多信息和一些重要的背景信息

我无法理解为什么当地时间会影响该方法的输出

ECMAScript日期对象基于时间值,该时间值是从1970-01-01T00:00:00Z的偏移量,因此它们本身就是UTC。因此,对于给定的时间值,getDay返回的值可能会因主机时区偏移量的不同而不同

因此,不管当地时间如何,新的日期(2020,1,12).getDay()应该返回3(星期三)

可以,但请注意,这些值被解释为本地值,因此在不同机器上生成的时间值(即UTC偏移量)可能会根据主机时区偏移量而有所不同

为什么写输出是根据当地时间


传输日期的一种方法是发送表示特定UTC时间的时间值(有时也称为“UNIX时间戳”)。由于getDay返回本地日期,因此根据该时间值创建日期并使用getDay可能会返回不同的值,具体取决于主机时区偏移量。

因为它是在浏览器中执行的,浏览器从安装它的机器上读取时间。因此,如果需要,请使用UTCneed@JeremyThille我知道杰里米!我想说的是,无论我的机器的本地时间是什么,
newdate(2020,1,12).getDay()的输出都是一样的!说结果是根据当地时间得出的有什么意义呢?它说是在当地时间,因为新日期(2020年1月12日)
也在当地时间。或者,您可以执行
newdate(Date.UTC(2020,1,12)).getUTCDay()啊,我现在明白了。你是对的,如果你给它一个具体的日期,它不是根据当地时间,因为它是一个绝对值。默认值(当没有明确的日期传递时)是本地时间。我们仍然有不同的时区。我们不是吗?如果你能多解释一下老年人与现在的不同,我将不胜感激。非常感谢。或者只是介绍一些链接或参考。@ShahryarSaljoughi我已经用另一个答案更新了我的答案:)