2012-10-05 21 views
5

Ben gün cinsinden zamana ihtiyacım var. Bunu güne nasıl çevireceğime dair yayınlar gördüm, ancak günlerde yok. Ben çogu zamanla çok kötüyüm ... bunu nasil alabilirim?Javascript Epoch Time In Days

+0

1 Ocak 1970 demek istiyorsun, o zamandan beri geçen zamanlar, ya da ne? – bms

cevap

22

Sana Dönemden beri gün sayısını istediğiniz yorumlamak edeceğiz gün

yılında çağı zamana ihtiyaç duyarlar. Çağın kendisi gün sıfırdır (ya da 1. günün başlangıcıdır, ancak bunu görmek istersiniz).

Bir javascript'in kalbinde Date nesnesi, 1970-01-01T00: 00: 00Z'den beri bir milisaniye sayısıdır.

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

2012-10-05 için, emin değil 15618. almalısınız: Yani şimdi sadece şimdiki zaman değerini almak ve bir gün içinde milisaniye sayısına bölerek daha sonra gün sayısını elde etmek için Eğer atlama saniye ve benzeri izin veriyorsa, ancak sistem saati doğruysa yeterince yakın olmalıdır (birkaç saniye içinde).

O sadece ofset zaman dilimi yerel kez vermek uygulandığı (örneğin getHours() ve toString() gibi) Date nesnesinin değerlerini okurken.

+1

Her yıl ya da iki yılda yalnızca bir saniye ekleriz, bu yüzden bu hesaplamayı etkileyecek kadar on binlerce yıl olacaktır. – Barmar

+4

@ Barmar - havalı, ancak gün sayısının birer birer kaldığı gece yarısı hakkında bir an olabilir. Sistem saatleri, böyle bir doğruluk için güvenilmemelidir. :-) – RobG