Potresti voler prendere in prestito alcune idee dalla mia implementazione delle date di inizio/fine voucher nella finestra di dialogo Nuovo voucher in un e-commerce su cui sto lavorando:
Un altro esempio per dimostrare la flessibilità e come evitiamo ambiguità negli intervalli di date nell’interfaccia utente:
Dettaglio tecnico: Nella nostra applicazione, salviamo sempre le date come “timestamp con timezone” (postgres), quindi nessuna impostazione del database, né impostazione di connessione, può influire sul timestamp effettivo memorizzato. Anche se Postgres non lo raccomanda, lo facciamo perché offre garanzie al 100% sulla correttezza della data in qualsiasi situazione e in qualsiasi query SQL. Puoi operare con i fusi orari delle date direttamente in postgres usando le loro funzioni data/ora/fuso orario ed essere certo che funzionerà sempre al 100% correttamente. Ci affidiamo a questo.
E poi abbiamo un’impostazione del fuso orario per tutti i tipi di entità che ne hanno bisogno: profili utente, mercati, voucher, reportistica per commercialisti, e così via, in modo da poter tradurre qualsiasi data in qualsiasi fuso orario al volo senza esitazione.
I punti chiave qui sono:
- Memorizza sempre data e ora con il fuso orario.
- Memorizza sempre la preferenza del fuso orario.
- Sii molto esplicito riguardo alle date nell’interfaccia utente, non fare magie.
- Lascia che l’utente veda le date effettive nel fuso orario scelto prima di fare clic su “Salva”.

