2012-01-30 10 views
9

yerel saat diliminde oluşturur. IE, Chrome ve Firefox'ta kodu (Link to Fiddle)Firefox yeni Date() Bir dizeden bir tarih nesnesi oluşturmak için çalışıyorum

currentDate = "2012-01-30T16:23:12"; 
var date = new Date(currentDate); 
alert(date); 

çalışma aşağıdaki zaman ": 23 12 2012-01-30T16"

Sonuçlar farklılık ben gibi milisaniye kısmı hariç ISO biçiminde tarihi almak IE ve Chrome, dizeyi UTC olarak değerlendirir, ancak firefox yerel saat diliminde dikkate alır.

her yerde kullanıcı aracısı kontrol dışında etrafında almak için herhangi bir jenerik yolu var mı?

+0

olası yinelenen [Annoying javascript zaman dilimi ayarlama sorunu] (http://stackoverflow.com/questions/7629286/annoying-javascript-timezone-adjustment-issue) –

cevap

12
UTC için +00:00 ofset Sıfır dilimini ekleme deneyebilirsiniz

:

currentDate = "2012-01-30T16:23:12+00:00"; 

bu yardım ediyor mu? (Üzgünüm aslında benim dilimi değiştirmeden bunu test edemez.)

+0

Teşekkürler. Bu "+00: 00" ile çalışır. Bu arada, üç tarayıcı da aynı dönem değerini verir. http://jsfiddle.net/harsha/9ybtN/2/ – harsha

+0

Üzgünüz, evet koloniye ihtiyacı var –

2

Hm, olası geçici çözüm dize ve kullanım yöntemlerini ayrıştırılır.

setUTCDate()  
setUTCFullYear() 
setUTCHours() 

Muhtemelen, daha iyi bir çözüm yoktur

+2

1, bu geçici bir çözüm ama * Doğru yol değildir *, bakın: http://stackoverflow.com/questions/7629286 –

0

mevcut formatta olursa girdi doğru ayrıştırılması dair bir garanti yoktur. Date.parse() yordamının yalnızca belirli bir biçimde dizeleri ayrıştırması gerekir - diğer biçimleri ayrıştırmak uygulamaya bağımlıdır. Eğer gerekliliği karşılayan uygulamalar güvenmek cesaret ederse, belirli bir biçimde uyacak şekilde veri eklemek:

new Date(currentDate + '.000Z') 

Alternatif akım formatta veri ayrıştırmak bir kütüphane, örneğin kullanmak jQuery veya Globalize.js.

Benzer hususlar yazılı tarihleri ​​için geçerlidir. ya açıkça ya alert(date) olduğu gibi Date.toString() kullanırsanız çıktı biçimi hiçbir garantisi yoktur. Tek bir bilgisayar içinde bile, farklı tarayıcılar farklı yerelleştirilmiş biçimleri kullanır. arasında

İlgili konular