In realtà sto convertendo un database MongoDB in cui le date sono archiviate come tipi Date() appropriati per archiviarle invece come stringhe nella forma yyyy-mm-dd
. Perché, considerando che ogni altro rispondente dice che questa è un'idea orribile? In poche parole, a causa del dolore infinito che ho sofferto cercando di lavorare con le date in JavaScript, che non ha il (reale) concetto di fuso orario. Avevo archiviato le date UTC in MongoDB, ovvero un oggetto Date() con la data desiderata e l'ora impostata come mezzanotte UTC, ma è inaspettatamente complicato e soggetto a errori ottenere una data inviata dall'utente correttamente convertita in quella da qualsiasi fuso orario essi mi capita di essere dentro. Ho lottato per far funzionare il mio codice JavaScript "qualunque sia il fuso orario locale per UTC" (e sì, sono a conoscenza di Sugar.js e Moment.js) e ho deciso che stringhe semplici come il buon vecchio standard MySQL yyyy-mm-dd
è la strada da percorrere e analizzerò gli oggetti Date() secondo necessità in fase di esecuzione sul lato client.
Per inciso, sto anche cercando di sincronizzare questo database MongoDB con un database FileMaker, che non ha nemmeno il concetto di fuso orario. Per me la semplicità di semplicemente non la memorizzazione dei dati temporali, soprattutto quando non ha senso come la mezzanotte UTC, aiuta a garantire un codice meno buggato anche se devo analizzare da e verso le date della stringa di tanto in tanto.