2017-03-03 75 views

回答

8

鉴于你不需要互联网连接使用JavaScript,它获取当前日期&时间(以及通过代理,UTC偏移量/区域设置)来自客户端的本地环境。您可以通过更改当地时钟来测试。

只记得改回来.. :)

3

是的,它基于正在评估调用的设备的本地时间,就像任何其他语言一样。

+2

注意[规范(http://www.ecma-international.org/ecma-262/6.0/#sec-date-constructor-date )可以解释。它只是说“当前时间”_。理论上,一个实现可以转移到网络时间服务器上以获得正确的价值。实际上,这是本地设备的时间。 –

+0

你是否知道任何通用的商业语言*不*仅在本地机器上执行日期系统调用? :) –

+0

不,只是指出了JavaScript允许的规范。例如,在C#中,[它明确声明](https://msdn.microsoft.com/en-us/library/system.datetime.now(v = vs.110).aspx)它是本地机器时间。 –

7

JavaScript代码Date对象代表时间,基于自纪元(1970年1月1日至午夜UTC)以来的毫秒数。自然,new Date使用运行环境的时钟来获取该值。因此,如果这是在我的机器上的浏览器中,并且我的时钟设置错误,它将使用我的机器的不正确时间。*

然后他们有两组函数可用于获取有关该时刻的信息:本地时区功能如getHours,getMonth等,以及UTC功能如getUTCHours,getUTCMonth等。本地时区功能工作在环境时区。自然,UTC功能以UTC工作。

因此,举例来说,假设有人在加州3月3日2017年做到这一点,在上午11:30 正是自己的时间:

var dt = new Date(); 
console.log(dt.getHours()); // 11 -- e.g., 11 a.m. 
console.log(dt.getUTCHours()); // 19 -- e.g., 7 p.m. 

对象的基础值是1488569400000,但本地时区功能告诉我们上午11点,UTC功能告诉我们下午7点


* (虽然作为James Thorpe points out,该规范是a bit vague这件事,只是说,它使用“当前时间”,因此理论上的环境可以决定把它使用比本地计算机以外的时间服务器但是...)

1

这是客户端(用户')的系统日期。 语法是:

new Date(); 
new Date(value); 
new Date(dateString); 
new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]); 

Date对象是内置的JavaScript语言数据类型。日期对象是使用新的Date()创建的,如下所示。

一旦Date对象被创建,许多方法都允许您对它进行操作。大多数方法只允许您使用本地时间或UTC(通用或GMT)时间来获取和设置对象的年,月,日,时,分,秒和毫秒字段。

ECMAScript标准要求Date对象能够在1970年1月1日之前或之后的1亿天内表示任何日期和时间,以毫秒为单位的精度。这是加273785年或减的范围,因此JavaScript可以代表日期和时间,直到今年275755. 参考网址:https://www.tutorialspoint.com/javascript/javascript_date_object.htm