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

时间:2012-01-19 12:46:31

标签: javascript

例如:

var date = new Date();

日期是否与用户本地时区相关?

3 个答案:

答案 0 :(得分:11)

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

答案 1 :(得分:2)

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

是的, 新的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之后将录音文件放在文件夹后的第二天。我使用 新的Date() 表达式来获取保存记录的日期文件夹名称。

答案 2 :(得分:1)

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

实际上,获得的值当然是基于客户端计算机时钟的近似值。它可能会或可能不会与提供相当准确时间的外部时间服务器同步,但它仍然是“客户端时间”的问题,与www服务器上的时间相反。