javascript Date()函数是否返回本地时间

Does the javascript Date() function return local time?

本文关键字:返回 时间 是否 函数 Date javascript      更新时间:2023-09-26

例如:

var date = new Date();

日期会相对于用户的本地时区吗?

是的,实际上它与用户自己的计算机时间相同。它不从服务器或任何地方获取信息,而是从用户自己的计算机获取信息。

"表达式new Date()以内部格式返回当前时间,作为一个对象,包含自1970年初以来以UTC计算的毫秒数。因此,时区问题不适用。如果将时间转换为字符串,则会变得非常重要。"

是的,new Date()表达式返回的时间不考虑时区问题,只有当它被转换为字符串时。

> d = new Date()
Thu Feb 07 2013 11:48:47 GMT-0200 (BRST)

我的时区是GMT-0200。

> d.toISOString().substr(0,19)
'2013-02-07T13:48:47'

正如我们所看到的,返回的时间不考虑时区。

内部考虑时区:

> d = new Date()
Thu Feb 07 2013 11:51:49 GMT-0200 (BRST)
> d = d - (d.getTimezoneOffset() * 60000)
1360237909163
> d = new Date(d)
Thu Feb 07 2013 09:51:49 GMT-0200 (BRST)
> d.toISOString().substr(0,19)
'2013-02-07T11:51:49'

现在时间调整到我的时区。

我在保存录音的摄像头监控软件中遇到了严重的问题。我的时区是GMT-0200,22:00后,录音文件被放在第二天的文件夹中。我使用new Date()表达式来获取保存录制的日期文件夹名称。

表达式new Date()以内部格式返回当前时间,作为一个对象,包含自1970年初以来以UTC表示的毫秒数。因此,时区问题不适用。如果将时间转换为字符串,则它们会变得很重要。

在实践中,所获得的值当然是基于客户端计算机的时钟的近似值。它可能与提供相当准确时间的外部时间服务器同步,也可能不同步,但这仍然是一个"客户端时间"问题,与www服务器上的时间相反。