tablas relaciones relacionadas relacion que obtener muchos hasmany español datos json data-formats

relaciones - ¿Cómo se representa la información de fecha y/o hora en JSON?



relaciones laravel (5)

No hay un conjunto de reglas, así que usa lo que sea más fácil para ti. Para la mayoría de las personas, es una cadena de salida UTC o un entero largo del código de tiempo centrado en UTC.

Lea esto para obtener más información sobre el fondo: http://msdn.microsoft.com/en-us/library/bb299886.aspx

El texto JSON ( RFC 4627 ) tiene una representación no ambigua de objetos, matrices, cadenas, números, valores booleanos (literalmente true o false ) y null . Sin embargo, no tiene nada definido para representar la información del tiempo, como la fecha y la hora del día, que es muy común en las aplicaciones. ¿Cuáles son los métodos actuales en uso para representar el tiempo en JSON dadas las restricciones y la gramática establecidas en RFC 4627 ?

Nota para los encuestados: El propósito de esta pregunta es documentar los diversos métodos conocidos que están en circulación junto con ejemplos y ventajas y desventajas relativas (idealmente a partir de la experiencia de campo).


ISO 8601 parece una opción natural, pero si desea analizarlo con JavaScript ejecutándose en un navegador, necesitará usar una biblioteca, para los soportes del navegador para las partes del objeto JavaScript Date que pueden analizar las fechas ISO 8601 es inconsistente, incluso en navegadores relativamente nuevos. Otro problema con ISO 8601 es que es un estándar grande y rico, y las bibliotecas de fecha / hora admiten solo una parte, por lo que tendrá que elegir un subconjunto de ISO 8601 para usar que sea compatible con las bibliotecas que usa.

En cambio, represento los tiempos como el número de milisegundos desde 1970-01-01T00: 00Z . Esto es entendido por el constructor del objeto Date en buscadores mucho más antiguos, al menos volviendo a IE7 (que es el más antiguo que he probado).


La única representación que he visto en uso (aunque, ciertamente, mi experiencia se limita a DOJO ) es ISO 8601 , que funciona muy bien y representa prácticamente todo lo que se pueda imaginar.

Por ejemplo, puede visitar el enlace de arriba.

Pros:

  • Representa prácticamente todo lo que pueda arrojar sobre él, incluidos los intervalos de tiempo. (es decir, 3 días, 2 horas)

Contras:

  • Umm ... No lo sé en realidad. ¿Aparte de quizás podría tomar un poco de tiempo acostumbrarse? Es ciertamente bastante fácil de analizar, si no hay funciones integradas para analizarlo ya.

Recomiendo usar el formato RFC 3339 , que es agradable y simple, y lo entiende un número cada vez mayor de idiomas, bibliotecas y herramientas.

Desafortunadamente, RFC 3339, el tiempo de época de Unix y el tiempo de milisegundos de JavaScript, todavía no son del todo precisos, ¡ya que ninguno de ellos representa segundos superávit! En algún momento, todos vamos a tener que volver a ver las representaciones del tiempo una vez más. Tal vez la próxima vez que terminemos con eso.


Perdón por comentar una pregunta tan antigua, pero en los años intermedios surgieron más soluciones.

La representación de información de fecha y / o hora en JSON es un caso especial del problema más general de representación de tipos complejos y estructuras de datos complejas en JSON. Parte de lo que hace que el problema sea complicado es que si representa tipos complejos como marcas de tiempo como objetos JSON, entonces necesita tener una forma de arrays asociativos de expresión y objetos, que se parecen a su representación de objeto JSON de una marca de tiempo, como alguna otra objeto marcado.

Los búferes de protocolo de Google tienen una asignación JSON que tiene la noción de un tipo de marca de tiempo, con semántica definida.

BSON de MongoDB tiene un JSON extendido que dice { "$date": "2017-05-17T23:09:14.000000Z" } .

Ambos también pueden expresar formas más complejas además de datetime.