Ve skutečnosti jsem v procesu převodu databáze MongoDB, kde jsou data uložena jako správné typy Date() a místo toho je ukládám jako řetězce ve tvaru yyyy-mm-dd
. Proč, když vezmeme v úvahu, že každý druhý respondent říká, že je to hrozný nápad? Jednoduše řečeno, kvůli nekonečné bolesti, kterou jsem trpěl při práci s daty v JavaScriptu, který nemá (skutečný) koncept časových pásem. Ukládal jsem data UTC do MongoDB, tj. objekt Date() s mým požadovaným datem a časem nastaveným na půlnoční UTC, ale je nečekaně komplikované a náchylné k chybám správně převést uživatelem odeslané datum na to z jakéhokoli časového pásma. Pokoušel jsem se zprovoznit kód JavaScriptu „bez ohledu na místní časové pásmo do UTC“ (a ano, znám Sugar.js a Moment.js) a rozhodl jsem se, že jednoduché řetězce jako starý dobrý standard MySQL yyyy-mm-dd
je správná cesta a podle potřeby analyzuji objekty Date() za běhu na straně klienta.
Mimochodem, také se snažím synchronizovat tuto databázi MongoDB s databází FileMaker, která také nemá koncept časových pásem. Pro mě jednoduchost prostě ne ukládání časových údajů, zvláště když to nemá smysl, jako je půlnoc UTC, pomáhá zajistit méně chybný kód, i když musím čas od času analyzovat do az data řetězce.