/ / Almacenamiento de fechas en mongodb con javascript - javascript, mongodb, date

Almacenamiento de fechas en mongodb con javascript - javascript, mongodb, date

Mientras se experimenta con mongodb y javascripten la pila MEAN. Me encontré con un problema a la hora de lidiar con las fechas, así que estoy interesado en escuchar cómo otros han abordado este tipo de escenario.

Digamos que tengo tres fechas que quiero almacenar en mongodb, una "fecha de nacimiento", una fecha de "creación de cuenta" y una fecha de "última visita".

  • "fecha de nacimiento"se explica por sí mismo. Esta fecha siempre debe ser la misma cuando se presenta al usuario.
  • "creación de cuenta"mantiene la fecha / la fecha y hora cuando se creó una cuenta. El usuario nunca ve esto como lo es para el uso interno de la aplicación.
  • "última visita"muestra al usuario la fecha / marca de tiempo cuando usó la aplicación por última vez.

Ahora, si guardo todas estas fechas como objetos de fecha de Javascript normales en mongodb, se guardan como UTC. Luego sigue lo siguiente:

  1. "fecha de nacimiento"ya no es correcto si se presenta al usuario como se recalculó a UTC.

  2. "creación de cuenta"está bien, ya que se utiliza internamente siempre y cuando sea consistente en UTC.

  3. "última visita"ya no es correcto si se presenta al usuario como se recalculó a UTC.

Así que ante el dilema de tratar de evitar.almacenar fechas como cadenas pero al mismo tiempo no estar dispuesto a luchar contra las complejidades de la zona horaria. ¿Cuál sería el mejor compromiso para enfrentar este escenario en términos de captura, almacenamiento y presentación de las fechas?

Respuestas

1 para la respuesta № 1

Toda la creación de la fecha no es igual. Un ejemplo:

Lo que probablemente hiciste:

new Date("2014/01/01")
ISODate("2014-01-01T13:00:00Z")

Y eso factorizó la diferencia de la zona horaria en la fecha generada.

Que quieres hacer:

new Date("2014-01-02")
ISODate("2014-01-02T00:00:00Z")

Que es exactamente en formato UTC.

Así que asegúrese de grabar cosas como un formato UTC cuando las cree.