2017-03-03 28 views

Trả lời

8

Vì bạn không cần kết nối internet để sử dụng JavaScript, nó sẽ có ngày hiện tại & thời gian (và theo proxy, giá trị bù trừ/vị trí UTC) từ môi trường cục bộ của ứng dụng khách. Bạn có thể kiểm tra điều này bằng cách thay đổi đồng hồ địa phương của bạn.

Chỉ cần nhớ để thay đổi nó trở lại .. :)

3

Có, dựa trên thời gian địa phương của thiết bị mà cuộc gọi đang được đánh giá, giống như nhiều ngôn ngữ khác.

+2

Lưu ý rằng [spec] (http://www.ecma-international.org/ecma-262/6.0/#sec-date-constructor-date) được mở để giải thích. Nó chỉ nói _ "thời gian hiện tại" _. Về lý thuyết, việc triển khai _could_ chuyển sang máy chủ thời gian mạng để nhận được giá trị phù hợp. Trong thực tế, đó là thời gian thiết bị cục bộ. –

+0

Bạn có biết bất kỳ ngôn ngữ thương mại phổ biến nào * không * chỉ làm một ngày syscall trên máy địa phương? :) –

+0

Không, chỉ cần chỉ ra những gì spec cho phép trong JavaScript. Ví dụ, trong C#, [nó được khai báo rõ ràng] (https://msdn.microsoft.com/en-us/library/system.datetime.now (v = vs.110) .aspx) rằng đó là thời gian máy cục bộ. –

7

Đối tượng JavaScript Date đại diện cho một thời điểm, dựa trên số mili giây kể từ The Epoch (ngày 1 tháng 1 năm 1970 lúc nửa đêm UTC). Đương nhiên, new Date sử dụng đồng hồ của môi trường nơi nó chạy để có được giá trị đó. Vì vậy, nếu điều này là trong một trình duyệt trên máy tính của tôi và đồng hồ của tôi được đặt sai, nó sẽ sử dụng thời gian không chính xác của máy. *

Sau đó, họ có hai bộ chức năng bạn có thể sử dụng để nhận thông tin về thời điểm đó trong thời gian: các hàm múi giờ như các hàm getHours, getMonth, v.v., và UTC như getUTCHours, getUTCMonth, v.v. Các hàm múi giờ địa phương hoạt động trong múi giờ của môi trường. Đương nhiên, các hàm UTC đang hoạt động trong UTC.

Vì vậy, ví dụ, giả sử ai đó là ở California vào ngày 03 tháng ba năm 2017 và thực hiện điều này tại 11:30 chính xác thời gian của họ:

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

Các giá trị cơ bản của đối tượng là 1488569400000, nhưng các hàm múi giờ địa phương cho chúng ta biết là 11 giờ sáng và các hàm UTC cho chúng ta biết là 7 giờ tối


* (Mặc dù như James Thorpe points out, spec là a bit vague về nó, chỉ nói nó sử dụng "thời điểm hiện tại", vì thế về mặt lý thuyết một môi trường có thể quyết định có nó sử dụng một máy chủ thời gian khác ngoài máy tính cục bộ Nhưng ...)

1

Đây là ngày hệ thống của khách hàng (người dùng). Cú pháp là:

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

Đối tượng ngày là kiểu dữ liệu được tích hợp trong ngôn ngữ JavaScript. Các đối tượng Date được tạo với Date() mới như được hiển thị bên dưới.

Khi đối tượng Date được tạo, một số phương thức cho phép bạn thao tác trên đó. Hầu hết các phương thức chỉ cho phép bạn nhận và đặt các trường năm, tháng, ngày, giờ, phút, giây và mili giây của đối tượng, sử dụng giờ địa phương hoặc giờ UTC (phổ quát hoặc GMT).

Tiêu chuẩn ECMAScript yêu cầu đối tượng Ngày có thể đại diện cho bất kỳ ngày và giờ nào, chính xác đến mili giây, trong vòng 100 triệu ngày trước hoặc sau 1/1/1970. Đây là phạm vi cộng hoặc trừ 273,785 năm, do đó JavaScript có thể đại diện cho ngày và giờ cho đến năm 275755. URL tham chiếu: https://www.tutorialspoint.com/javascript/javascript_date_object.htm

Các vấn đề liên quan