Jeg er faktisk i gang med at konvertere en MongoDB-database, hvor datoer er gemt som korrekte Date()-typer for i stedet at gemme dem som strenge i formen yyyy-mm-dd
. Hvorfor, i betragtning af at hver anden svarer siger, at det er en forfærdelig idé? Kort sagt, på grund af den uendelige smerte, jeg har lidt ved at prøve at arbejde med datoer i JavaScript, som ikke har noget (rigtigt) begreb om tidszoner. Jeg havde gemt UTC-datoer i MongoDB, det vil sige et Date()-objekt med min ønskede dato og klokkeslættet sat som midnat UTC, men det er uventet kompliceret og fejltilbøjeligt at få en brugerindsendt dato korrekt konverteret til den, uanset hvilken tidszone de har. Jeg har kæmpet for at få min JavaScript "uanset lokal tidszone til UTC"-kode til at virke (og ja, jeg er opmærksom på Sugar.js og Moment.js), og jeg har besluttet, at simple strenge som f.eks. den gode gamle MySQL-standard yyyy-mm-dd
er vejen at gå, og jeg vil parse ind i Date()-objekter efter behov under kørsel på klientsiden.
Jeg forsøger i øvrigt også at synkronisere denne MongoDB-database med en FileMaker-database, som heller ikke har noget begreb om tidszoner. For mig er det enkelt at ikke lagring af tidsdata, især når det er meningsløst som UTC midnat, hjælper med at sikre mindre buggy kode, selvom jeg skal parse til og fra strengdatoerne nu og da.