2012-03-28 5 views
5

Estoy tratando de crear un nuevo objeto de fecha de cadena como sigue:Javascript nuevo objeto Date de cadena, diferentes resultados en IE y FF

var myDate= new Date("1985-01-01T00:00:00.000-06:00"); 

en Firefox, alerta el siguiente

Mar Ene 01 de 1985 00:00:00 GMT-0600 (hora estándar central)

En IE8, alerta el siguiente

NaN

¿Por qué IE está actuando de esta manera?

+0

posible duplicado del [fechas javascript en IE, NAN - Firefox y Chrome OK] (http://stackoverflow.com/questions/2182246/javascript-dates-in-ie-nan-firefox-chrome-ok) –

+1

Porque IE8 no es compatible con este formato. Simple como eso. – BalusC

+0

Hola balusC, ¿Cuál es la forma más sencilla de crear una fecha con String para IE? – user1195192

Respuesta

5

Mirando a la documetation el formato correcto es el siguiente:

new Date(year, month, day [, hour, minute, second, millisecond ]) 

Así que si ejecuta el siguiente código que va a estar bien en todos los navegadores:

var myDate= new Date(1985, 01, 01 , 00, 06, 00, 0000000000); 
myDate // you get the right date in all browsers IE8/7 included 
+0

esto no obtendrá la fecha correcta, cos ie8 cuenta el mes de '0' no '1', entonces 'nueva Fecha (1985, 01, 01, 00, 06, 00, 0000000000)' recibe Feb no Jun, necesita disminuir 1 cuando tu mes pasado parámetro –

2

Pruebe moment.js para todos sus problemas con JS Date.

+0

¿Puedes dar un ejemplo de código de cómo se puede usar el momento.js para responder la pregunta? – JustinStolle

+0

@JustinStolle var myDate = momento ('1985-01-01T00: 00: 00.000-06: 00'); – dontGoPlastic

0

El formato no es compatible con ES DECIR. Tal vez usted podría tratar de usar setUTCHours:

var rawdate = new Date("1985/01/01 00:00:00 GMT"); 
console.log(rawdate); 
    //=> in my timezone: Tue Jan 1 01:00:00 UTC+0100 1985 
console.log(rawdate.setUTCHours(-6)); 
    //=> in my timezone that results in: Mon Dec 31 19:00:00 UTC+0100 1984 

O tal vez significaría (funciona en IE, no en otros navegadores)?

var rawdate = new Date("1985/01/01 00:00:00 GMT-6"); 
    //=> Tue Jan 1 07:00:00 UTC+0100 1985 
Cuestiones relacionadas