Si encuentras algún fallo en tu código o proyecto, recuerda probar siempre en un ambiente de testing antes aplicar el código al trabajo final.
Solución:
los JSON.parse
La función acepta una función de reactivación DateTime opcional. Puedes usar una función como esta:
dateTimeReviver = function (key, value)
var a;
if (typeof value === 'string')
a = //Date((d*))//.exec(value);
if (a)
return new Date(+a[1]);
return value;
Luego llame
JSON.parse(somejsonstring, dateTimeReviver);
Y tus fechas saldrán bien.
No hay una representación JSON estándar de fechas. Deberías hacer lo que sugirió @jAndy y no serializar un DateTime
en absoluto; simplemente envíe una fecha RFC 1123 string ToString("r")
o un número de época de segundos de Unix, o cualquier otra cosa que pueda usar en JavaScript para construir un Date
.
Esta respuesta de Roy Tinker aquí:
var date = new Date(parseInt(jsonDate.substr(6)));
Como dice: La función substr elimina la parte “/Date(“, y la función parseInt obtiene el número entero e ignora “)/” al final. El número resultante se pasa al constructor Fecha.
Otra opción es simplemente formatear su información correctamente en el lado ASP de modo que JavaScript pueda leerla fácilmente. Considere hacer esto para sus citas:
DateTime.Now()
Que debería devolver un formato como este:
7/22/2008 12:11:04 PM
Si pasas esto a un JavaScript Date
constructor como este:
var date = new Date('7/22/2008 12:11:04 PM');
La variable date
ahora tiene este valor:
Tue Jul 22 2008 12:11:04 GMT-0700 (Pacific Daylight Time)
Naturalmente, puede formatear este DateTime
objeto en cualquier tipo de string/int el JS Date
el constructor acepta.
Calificaciones y comentarios
Finalizando este artículo puedes encontrar las reseñas de otros desarrolladores, tú además tienes la libertad de dejar el tuyo si lo deseas.