Gestion des dates

S’il y a bien un écueil récurrent quand tu programmes, c’est celui qui consiste à gérer des dates et heures dans un logiciel ! Parce qu’au delà de la simple représentation des dates en fonctions de la localisation — comprendre à la fois position géographique, spécifiée par un fuseau horaire, et la langue et donc le format utilisé pour afficher dates et heures — de l’auteur (ou des réglages locaux du système), ça peut vite devenir un sac d’embrouilles !

Évidemment dans Dotclear on y est confronté, parce qu’un blog possède un fuseau horaire, mais chaque auteur en possède un à lui aussi et ça peut être différent de celui du blog ; la question se pose alors de savoir quoi utiliser pour afficher l’heure d’édition d’un billet sur la partie publique1. Par ailleurs on stocke une date de création, de modification et de publication pour les billets (et pages) et de conception les deux premières sont enregistrées selon le fuseau horaire GMT (UTC) alors que la dernière l’est selon le fuseau horaire de l’auteur.

Idem pour les médias qui ont ont eux aussi ces trois dates, bien que ça soit évidemment moins gênant dans ce cas précis puisqu’il est rare d’avoir besoin d’une forte précision sur l’âge de ceux-ci2.

Enfin on gère aussi des dates et heures pour la gestion du ou des caches des pages HTML rendues, côté public du blog3.

Par ailleurs PHP 8.1 a rendu obsolète une des fonctions qu’on utilisait dans Dotclear pour gérer les dates et heures, strftime() en l’occurence, et la remplacer n’a pas été sans poser quelques problèmes.

Bref, tout ça pour dire que ça reste un joli sac de nœud dans le cerveau dès que je dois mettre mon nez la dedans !


  1. Pour la partie administration c’est facile, il suffit de se caler avec le fuseau horaire de l’utilisateur connecté. ↩︎

  2. On peut raisonnablement admettre un décalage de fuseau horaire, soit quelques heures, pour indiquer l’âge d’un média. ↩︎

  3. Je me demande si on a pas un problème de ce côté, genre décalage d’une heure pour ce qui nous concerne en France (UTC+1), pour la gestion du cache HTTP (qui est désactivable avec le plugin sysInfo d’ailleurs, faudrait tester). ↩︎

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15261

Haut de page