2014-07-01 28 views
6

konu: IE 10'da yeni tarihi Farklı biçimleri() - IE 11 JavaScript:JavaScript Yeni Date()/UTC - GMT çapraz tarayıcı

IE 11/Krom:

var m = new Date("2014-07-04T04:00:00"); 
console.log(m); // Fri Jul 04 2014 06:00:00 GMT+0200 (W. Europe Summer Time) 

IE 10:

var m = new Date("2014-07-04T04:00:00"); 
console.log(m); // Fri Jul 4 04:00:00 UTC+0200 2014 

Hepsine hükmedecek bir yüzük kullanmak mümkün mü?

+4

Evet, ** moment.js kullanın **: http://momentjs.com/ – Ian

+2

Tutarlı davranış için, dize içinde bir saat dilimi ekleyin. Sorun, tarayıcı satıcıları arasında, bu formatın bir dizinden yokken hangi zaman diliminin varsayılacağı konusunda bir farktır (http://ecma-international.org/ecma-262/5.1/#sec-15.9). 1.15). –

cevap

6

Bu nedenle, özellikle bu nedenle new Date için bir dize iletmemelisiniz. bunu UTC bir zaman vermek istiyorsanız, deneyin,

new Date(2014, 6, 4, 4, 0, 0); // remember months are zero-based 

Veya:

Bunun yerine, bunu bireysel argümanları vermelidir ya Yapabilirsiniz

var d = new Date(); 
d.setUTCFullYear(2014); 
d.setUTCMonth(6); 
d.setUTCDate(4); 
d.setUTCHours(4); 
d.setUTCMinutes(0); 
d.setUTCSeconds(0); 
d.setUTCMilliseconds(0); 

, tabii ki, Bunu yapmak için bir işlev yapmak. Eğer bir zaman damgası varsa

Alternatif olarak, sadece yapabilirsiniz:

var d = new Date(); 
d.setTime(1404446400000); 
0

biraz cevap tamamlamak için. Verilen UTC örneği aşağıdaki mayıs 31 (veya ayın herhangi bir başka 31 gün) yürütmek göz önüne alındığında, tehlikelidir:

var d = new Date(); 
d.setUTCFullYear(2014); 
d.setUTCMonth(5); 
d.setUTCDate(4); 
d.setUTCHours(4); 
d.setUTCMinutes(0); 
d.setUTCSeconds(0); 
d.setUTCMilliseconds(0); 

o "2014 Temmuz 4 04:00:00" üretecek.

new Date(Date.UTC(2014, 5, 4, 4, 0, 0, 0)) 

o "2014 4 Haziran 04:00:00" üretecek:

Bunun yerine Date.UTC fonksiyonunu tercih ederim.

İlgili konular