objeto - mostrar datos json javascript
Problemas con Date() al usar JSON.stringify() y JSON.parse() (2)
Si observa el resultado de JSON.stringify para una fecha, verá que:
JSON.stringify(new Date())
Resultados en una cadena. JSON no tiene una representación primitiva de objetos Date que JSON.parse volverá a convertir automáticamente en un objeto Date.
El constructor del objeto Date puede tomar una cadena de fecha, por lo que puede convertir esos valores de cadena nuevamente en fechas haciendo:
var x = new Date(JSON.parse(JSON.stringify(new Date())));
Entonces la aritmética funcionará.
x = new Date(JSON.parse(JSON.stringify(new Date())))
y = new Date(JSON.parse(JSON.stringify(new Date())))
y - x
=> 982
Estoy tratando de calcular la diferencia entre dos veces usando JavaScript. Es solo matemática básica, pero parece que tengo algunos problemas al usar JSON.stringify()
y JSON.parse()
.
Si se pregunta por qué estoy aplicando la función JSON.stringify()
a la fecha, es porque JSON.stringify()
el almacenamiento local para almacenar algunos datos del lado del cliente y usarlos cada vez que el cliente aterriza en mi sitio web nuevamente (es más rápido de esa manera en lugar de hacer más solicitudes al servidor). Esa información generalmente se actualiza de vez en cuando (estoy tomando los datos a través de API de otro sitio web), así que configuro una variable data_update
y la estoy almacenando junto con los otros datos.
De esa forma estoy tomando los datos almacenados del almacenamiento local y verificando si la diferencia entre data_update
(que es una fecha / hora) y la hora / fecha en que se realizó la verificación y si es mayor a una semana / día / etc. .
Esa es la razón por la que estoy usando las funciones JSON. Mi problema es que cuando estoy analizando los datos del almacenamiento local, la fecha parece ser diferente de un objeto Date()
.
Estoy tratando de hacer la siguiente operación por decir:
var x = JSON.parse(JSON.stringify(new Date()));
var y = JSON.parse(this.get_local_storage_data(this.data_cache_key)); // the data object stored on local storage
var q = y.data_update; // this is the variable where the Date() was stored
console.log(Math.floor((x-q)/1000));
Lo anterior devolverá null
. También cuando quiero ver el resultado Math.floor(x)
, devuelve null
nuevamente.
Entonces, ¿qué puedo hacer en esta situación? ¿Hay una solución para esto?
JSON.stringify(new Date())
devoluciones
"2013-10-06T15: 32: 18.605Z"
Gracias a Dios está: Date.toISOString()