Ik ben eigenlijk bezig met het converteren van een MongoDB-database waarin datums worden opgeslagen als de juiste Date()-typen om ze in plaats daarvan op te slaan als strings in de vorm yyyy-mm-dd
. Waarom, aangezien elke andere antwoorder zegt dat dit een vreselijk idee is? Simpel gezegd, vanwege de eindeloze pijn die ik heb geleden toen ik probeerde te werken met datums in JavaScript, dat geen (echt) concept van tijdzones heeft. Ik had UTC-datums opgeslagen in MongoDB, d.w.z. een Date()-object met mijn gewenste datum en de tijd ingesteld als middernacht UTC, maar het is onverwacht ingewikkeld en foutgevoelig om een door de gebruiker ingediende datum correct naar die datum te laten converteren vanuit welke tijdzone ze ook zijn. Ik heb moeite gehad om mijn JavaScript-code "ongeacht de lokale tijdzone naar UTC" te laten werken (en ja, ik ben me bewust van Sugar.js en Moment.js) en ik heb besloten dat eenvoudige strings zoals de goede oude MySQL-standaard yyyy-mm-dd
is de juiste keuze, en ik zal naar behoefte Date()-objecten ontleden tijdens runtime aan de clientzijde.
Overigens probeer ik deze MongoDB-database ook te synchroniseren met een FileMaker-database, die ook geen concept van tijdzones heeft. Voor mij de eenvoud van gewoon niet het opslaan van tijdgegevens, vooral wanneer het zinloos is zoals UTC middernacht, zorgt ervoor dat code met minder fouten wordt gemaakt, zelfs als ik af en toe van en naar de stringdatums moet ontleden.