28/01/11, L'oiseau2nuit:
Dites, truc bête que j'avais jamais remarqué avant puisque je réglais
les serveurs en direct en fait mais, au cas où on ait pas ces accès
là, on s'est rendu compte qu'il n'y avait rien dans l'espace privé
pour permettre de régler l'heure de son site spip et son fuseau
horaire ? Ou alors on a pas les yeux en face des trous ?
Le fuseau horaire du serveur, on s'en fiche. J'ai un site qui est
hébergé à Paris mais dont les auteurs SPIP, et la majorité des
visiteurs, et moi, sommes au Mexique. Et on pourrait être répartis un
peu partout dans le monde (d'ailleurs ça va commencer à être le cas).
Spip-contrib est un bon exemple: les heures sont affichées comme si on
était à Paris, ce qui est sûrement vrai pour le serveur, mais perso je
dois faire la conversion ou me contenter d'heures approximatives.
Comme son nom l'indique, la "default timezone" n'est que le fuseau
horaire par défaut, c'est-à-dire le fuseau horaire utilisé quand on
affiche une date/heure locale: "20 janvier 2011 à 14h50" par exemple.
Sur internet, cette forme est totalement inutile, la plupart du temps.
D'ailleurs, ce n'est pas spécifique à SPIP : sur plein de blogs des
états-unis, on voit des commentaires postés à 20h30 alors qu'il n'est
que 15h chez soi. Ça nous fait une belle jambe, sans fuseau horaire...
Il faut soit avoir l'info côté serveur du fuseau horaire du visiteur et
marquer la date dans ce fuseau, soit indiquer une date complète:
- "publié aujourd'hui à 14h50 (heure de Paris)"
- "publié aujourd'hui à 13h50 GMT"
- etc.
Stocker le fuseau horaire de chaque auteur dans son profil, et faire la
conversion côté serveur, demanderait un cache différent pour chaque
personne. Il faudrait arriver à optimiser le fonctionnement pour
avoir juste un cache différent pour chaque fuseau horaire (3 ou 4
variantes maxi en général), ou bien écrire toujours la date dans un
certain fuseau horaire (en l'indiquant !), et un javascript par-dessus
qui détecte le fuseau du visiteur et réécrit la date sous forme locale.
Mais ça demande d'avoir les fonctions de formatage en javascript...
Une piste complémentaire: la balise "time"[1] arrivée avec HTML5, qui
permet d'ajouter la représentation ISO sous forme d'attribut. Ça donne
aux navigateurs une possibilité de faire un truc intelligent avec cette
info: te mettre la date version locale dans la barre d'état, dans une
infobulle, réécrire la date "dans le texte", etc.
[1] http://dev.w3.org/html5/markup/input.datetime.html
Bref c'est pas une question simple... Mais le fuseau par défaut du
serveur, c'est une fausse piste je pense. 