2015-03-27 14 views
6

Tôi có một ứng dụng C# mà trở về trong JSON một ngày hết hạn của một thẻ xác thực như thế này:Ngày sử dụng Javascript mới() sử dụng múi giờ nào?

"expirationDate":"Fri, 27 Mar 2015 09:12:45 GMT" 

Trong nguyên cảo của tôi, tôi kiểm tra xem ngày vẫn còn hợp lệ ở đây:

isAuthenticationExpired = (expirationDate: string): boolean => { 
    var now = new Date().valueOf(); 
    var exp: any = Date.parse(expirationDate).valueOf(); 
    return exp - now <= 0; 
}; 

Những gì tôi muốn biết múi giờ new Date() có sử dụng khi nó trả về một ngày không?

+0

Nếu không có đối số nào được cung cấp, hàm tạo sẽ tạo đối tượng Ngày JavaScript cho ngày và giờ hiện tại theo cài đặt hệ thống. – Satpal

+1

Nó chỉ định tên múi giờ.Chỉ cần chạy 'new Date()' và thấy chính mình – zerkms

+0

Và bạn có thể sử dụng 'getTimezoneOffset()' để có được độ lệch theo phút giữa GMT và local time – Sami

Trả lời

5

JavaScript sẽ sử dụng giờ địa phương của khách hàng nhưng cũng có phương thức UTC/GMT. Sau đây là từ Mozilla:

Đối tượng ngày JavaScript hỗ trợ một số phương pháp UTC (phổ quát), cũng như các phương pháp thời gian địa phương. UTC, còn được gọi là Giờ trung bình Greenwich (GMT), đề cập đến thời gian được đặt theo Tiêu chuẩn thời gian thế giới. Giờ địa phương là thời gian được biết đến với máy tính nơi JavaScript được thực thi.

tham khảo: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

1

Theo mặc định, JS sẽ sử dụng múi giờ của trình duyệt của bạn, nhưng nếu bạn muốn thay đổi màn hình hiển thị, bạn có thể ví dụ như sử dụng toString() chức năng;)

var d1=new Date(); 
d1.toString('yyyy-MM-dd');  //returns "2015-03-27" in IE, but not FF or Chrome 
d1.toString('dddd, MMMM ,yyyy') //returns "Friday, March 27,2015" in IE, but not FF or Chrome 
0

múi giờ nào làm Ngày mới javascript() sử dụng?

Date đối tượng hoạt động với số mili giây kể từ The Epoch (ngày 1 tháng 1 năm 1970 lúc nửa đêm GMT). Họ có các phương pháp như getDaygetMonth và các phương thức như vậy sử dụng múi giờ địa phương của công cụ JavaScript và cũng có chức năng như getUTCDaygetUTCMonth sử dụng UTC (lỏng lẻo, GMT).

Nếu bạn đang phân tích chuỗi, bạn cần đảm bảo rằng chuỗi có định dạng Date biết cách phân tích cú pháp. Chỉ định nghĩa định dạng trong đặc điểm kỹ thuật là a simplified derivative of ISO-8601, nhưng nó chỉ được thêm vào ES5 và họ đã sai trong spec về những gì sẽ xảy ra nếu không có chỉ báo múi giờ trên chuỗi, vì vậy bạn cần phải chắc chắn luôn luôn có một chỉ báo múi giờ trên nó (hiện tại, ES6 sẽ sửa chữa nó và cuối cùng động cơ sẽ sử dụng hành vi ES6 một cách đáng tin cậy). Những chuỗi đó trông giống như sau:

"2015-03-27T09:32:54.427Z" 

Bạn có thể tạo định dạng đó bằng phương pháp toISOString.

1

Như kia nói, JavaScript sử dụng thời gian cho khách hàng hệ thống, nhưng bạn có thể tạo đối tượng ngày từ thời gian máy chủ, vì vậy mỗi khách hàng sẽ có được thời gian hiện tại giống nhau.

var date = new Date("<?php echo date("Y-m-d H:i:s");?>"); 

Nó sẽ chỉ hoạt động khi tải trang. Nếu bạn muốn kiểm tra sau này cho ngày vẫn còn hợp lệ, sau đó bạn cần phải đồng bộ hóa ngày hiện tại với ngày máy chủ mỗi vài giây.

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