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 !
-
Pour la partie administration c’est facile, il suffit de se caler avec le fuseau horaire de l’utilisateur connecté. ↩︎
-
On peut raisonnablement admettre un décalage de fuseau horaire, soit quelques heures, pour indiquer l’âge d’un média. ↩︎
-
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). ↩︎
1 De Franck -
Et là un petit commentaire pour comparer les
etag
de la page d’accueil avant et après mise en ligne d’icelui.2 De Franck -
Et évidemment ça fonctionne correctement, les deux sont différents. Voyons maintenant voir si il y a problème avec le cache statique, puisque la page d’accueil est à cet instant dans son cache (avec un commentaire) …
3 De Franck -
Aucun souci non plus, mention « 2 commentaires » vue dans le cache statique. Jusque là ça fonctionne bien…
4 De Franck -
Et à chaque fois un rafraichissement simple de l’onglet affichant ma page d’accueil retourne bien le contenu attendu (et à jour).
5 De Philippe -
Et si je laisse un commentaire et que je retourne sur la page d’accueil ?
6 De Franck -
Un refresh aura suffit dans mon cas…
7 De Philippe -
Ben ça semble marcher au poil, il y a 5 commentaires ici (et bientôt 6)
8 De Franck -
Nope, 7 :-)
9 De Philippe -
Franck : pas besoin de refresh pour moi, le commentaire est publié et visible immédiatement. Si je vais simplement sur la page d’accueil, il est comptabilisé.
Et les heures de publication du commentaire sont correctes de mon côté \o/
10 De Philippe -
Ah non, j’ai dit une bêtise : sans refresh, la page d’accueil n’affiche pas le bon nombre