2012-10-03 15 views
5

Zaman dilimi ve Javascript Date nesnesiyle garip bir şey fark ettim.Bir Javascript `Date` nesnesinde 21 Ekim 2012'yi temsil etmenin bir yolu var mı?

bir Linux paketinde bu çalışılıyor:

$ TZ='America/Sao_Paulo' js 
js> new Date(2012, 9, 21, 0, 0, 0).toString() 
"Sat Oct 20 2012 23:00:00 GMT-0300 (BRST)" 

İmkansız Ekim Her bir Date 00:00 ila 01:00 o gün olsun çalışılmaktadır 2012'de 21. temsil eden bir nesneyi almak için buldum Bir önceki gün saat 11:00 ile 00:00 arasında sonuçlanır.

geri aynı tarihi almakla böyle bir tarih nesne sonuçlarına bir saat (veya bir gün) ekleme

(Windows kullanıcı aynı davranışı yaşamaya Brasilia/GMT-03 için kendi saat dilimini değişebilir).

Brezilya'da belirli bir tarihte gerçekleşen gün ışığından yararlanma saati ile ilgili olması gerektiğini düşünüyorum, ancak bununla nasıl başedeceğimi kesinlikle bilmiyorum.

Ben 20 Ekim ulaşan zaman (bir takvim uygulaması için) ayın gün içinde dolaşır ve belli ki bu durumda sonsuza döndüğü bir döngü var 2012.

yapıyorum şey olmalı yanlış, ama böyle bir durumla nasıl başa çıkacağımı bilmiyorum, sanırım başka saat dilimlerinde de olabilir.

nedir meydana gelmez zaman ilgili sorunları tasarrufu böyle zaman dilimi/gün ışığı sağlamak için JavaScript Date ile başa önerilen yöntem?

cevap

0

Bu kesinlikle doğru bir davranıştır. DST gece yarısı nedeniyle 21 Ekim'de Brezilya'da yerel saatlerde mevcut değildir. Sadece bir takvim oluşturmanız gerekiyorsa, new Date(2012, 9, 21, 0, 0, 0).toString() ve diğer UTC methods yerine new Date(2012, 9, 21, 0, 0, 0).toUTCString()'u kullanabilirsiniz.

Örneğin, bir UTC tarihi oluşturmak için new Date(Date.UTC(2012, 9, 21, 0, 0, 0));'u kullanabilirsiniz.

+0

Cevabınız için teşekkür ederiz. Ancak benim sorunum tarihin dize temsili almıyor, ancak tam anı temsil eden bir valilik nesneye sahip olmak. – ereOn

+1

Daha sonra sadece UTC yöntemini kullanın: 'new Date (Date.UTC (2012, 9, 21, 0, 0, 0));' – bjornd

+0

Daha iyi çalışır. Gerçek çözümün ne olduğunu daha açık hale getirmek için lütfen cevabınızı düzenleyebilir misiniz? Bunu kabul etmekten mutluluk duyacağım :) – ereOn

İlgili konular