Saltar al contenido

¿Cómo analizar JSON para recibir un objeto Date en JavaScript?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *