5 votes

Comment gérer une application Laravel sur plusieurs fuseaux horaires ?

Je me suis renseigné sur la meilleure approche pour gérer les heures localisées, lorsqu'une application Laravel est utilisée sur plusieurs fuseaux horaires.

D'après ce que j'ai compris, le fuseau horaire de l'application doit rester celui par défaut, à savoir UTC.

Cela signifie que toutes les dates/horodatages sont enregistrés dans la base de données (MySQL dans mon cas) comme leur valeur UTC - en d'autres termes, de manière cohérente.

Pour que les modèles Eloquent aient les valeurs correctes (localisées) de la date et de l'heure, le fuseau horaire de l'utilisateur doit être respecté. C'est à ce stade que je suis moins clair sur la façon de procéder - plus précisément, en termes de :

  • Comment obtenir au mieux le fuseau horaire de l'utilisateur
  • Comment ce fuseau horaire peut être utilisé dans un transparent avec Eloquent, de façon à ce que
    • Toutes les dates du modèle sont indiquées en heure locale
    • Toutes les dates sont enregistrées correctement dans la base de données (en UTC).

Modifier Je dois préciser que mon application prend en charge les utilisateurs anonymes et authentifiés, et que je ne veux pas obliger l'utilisateur à sélectionner explicitement son fuseau horaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X