2012-10-05 26 views
5

Tôi cần thời gian epoch trong ngày. Tôi đã nhìn thấy các bài viết về cách dịch nó cho đến nay nhưng không có gì trong ngày. Tôi khá tệ với thời gian kỷ niệm ... làm thế nào tôi có thể có được điều này?Thời gian sử dụng Javascript trong các ngày

+0

Bạn có nghĩa là ngày 1 tháng 1 năm 1970, thời gian từ đó đến ngày khác không? – bms

Trả lời

22

Tôi cần thời gian kỷ nguyên trong những ngày

tôi sẽ giải thích mà bạn muốn số ngày kể từ khi kỷ nguyên. Bản thân thời đại là ngày bằng không (hoặc bắt đầu ngày 1, tuy nhiên bạn muốn xem nó).

Tại trung tâm của đối tượng Ngày javascript là một số mili giây từ 1970-01-01T00: 00: 00Z. Vì vậy, để có được số lượng ngày, kể từ đó đến nay bạn chỉ nhận được giá trị thời gian hiện tại và chia nó bằng số mili giây trong một ngày:

var now = new Date(); 
var fullDaysSinceEpoch = Math.floor(now/8.64e7); 

Đối 2012/10/05 bạn sẽ nhận được 15618. Không chắc nếu nó cho phép giây nhảy vọt và như vậy, nhưng nó phải đủ gần (trong vòng vài giây) nếu đồng hồ hệ thống là chính xác.

Chỉ khi đọc giá trị của đối tượng Ngày (chẳng hạn như getHours()toString()) thì chênh lệch múi giờ được áp dụng để cung cấp thời gian cục bộ.

+1

Chúng tôi chỉ thêm giây nhuận mỗi năm hoặc hai giây, vì vậy sẽ mất hàng chục nghìn năm trước khi có đủ ảnh hưởng đến tính toán này. – Barmar

+4

@ Barmar — thật tuyệt, nhưng có thể có một khoảnh khắc về nửa đêm, nơi số ngày bị hết. Đồng hồ hệ thống không nên dựa vào độ chính xác như vậy anyway. :-) – RobG