2012-09-21 13 views
9

Tengo un problema con las fechas de análisis de mi DS.Modelo en el formato "YYYY-MM-DD". Siempre están un día atrasados.DS. El atributo de fecha del modelo analiza la fecha (AAAA-MM-DD) incorrectamente

Aquí se muestra un ejemplo:

http://jsfiddle.net/ZUV8v/

usando fecha objetos en la consola que consigo resultados similares

> new Date('2012-09-20') 
Wed Sep 19 2012 17:00:00 GMT-0700 (PDT) 

Es esto un error brasa o un javascript error o un fallo Chrome o AM Me falta algo?

versión de Chrome 21.0.1180.89 en OSX 10.7

+0

¿Todavía puede reproducir esto con su violín JS? Obtengo el siguiente resultado, y parece correcto: 'fecha: jue 20 de septiembre de 2012 03:00:00 GMT + 0300 (hora estándar árabe)'. –

+0

Creo que la fecha es correcta para usted debido a la zona horaria en la que se encuentra. Así, como dice @jasolko, Javascript completa los valores faltantes con ceros y luego los evalúa en función de la zona horaria actual. En mi caso, estar en la zona horaria del Pacífico resta 7 horas moviendo la fecha al día anterior. –

Respuesta

4

me encontré con esto el otro día.

Según la ECMAScript Specification 15.9.1.15

Todos los números deben ser base 10. Si los campos MM o DD están ausentes "01" se utiliza como el valor. Si los campos HH, mm o ss están ausentes, se usa "00" como valor y el valor de un campo sss ausente es "000". El valor de una compensación de zona horaria ausente es "Z".

new Date('2012-09-20') 

es lo mismo que

new Date("2012-09-20T00:00:00.000Z") 

La consola emite el valor de su zona horaria local.

+0

bien eso tiene sentido. ¿Cree que los datos de aserciones deberían analizar la fecha de forma diferente o debería el valor de fecha json incluir siempre el tiempo y la zona horaria? –

+0

Lo siento, normalmente no miro aquí durante el fin de semana. Creo que tiene sentido incluir siempre la zona horaria. Solo escribo aplicaciones internas que permanecen en una sola zona horaria y nunca antes había tenido que pensar en esto. –

+0

no hay problema Si es un objeto datetime, estoy de acuerdo, pero parece que no hay una buena manera de poner fecha solo a los objetos en javascript. Empecé una nueva pregunta con respecto a la serialización. http://stackoverflow.com/questions/12538242/serialize-date-attributes. Gracias por la ayuda. –

Cuestiones relacionadas