2010-03-17 27 views
3

J'ai un calendrier sur mon site Web, généré en Perl en utilisant Template::Toolkit et Template::Plugin::Date.Comment changer de fuseau horaire dans Template :: Plugin :: Date de Perl?

Il met en évidence le jour actuel. J'y parviens en parcourant toutes les dates (en imprimant le calendrier) et en comparant avec la date actuelle. Quelque chose comme ceci:

[% IF cur_date == date.format(format = '%Y-%m-%d') %] 
... 
[% END %] 

Tout fonctionne bien jusqu'à ce que quelqu'un en Australie le regarde. (Ils sont dans un fuseau horaire différent pour moi et mon serveur au Royaume-Uni).

Quelle est la meilleure façon d'obtenir Template::Plugin::Date pour utiliser un fuseau horaire différent? Il accepte un paramètre 'locale', mais AFAIK ceci est seulement utilisé pour le formatage.

+2

Le site est-il généré de manière dynamique? Comment obtenez-vous le fuseau horaire du visiteur? –

+0

yup. Je vais obtenir le fuseau horaire de l'utilisateur de leur profil que nous avons stocké dans la base de données – aidan

Répondre

0

Il ne semble pas que vous puissiez le faire via ce plugin. Une idée approximative (sans voir le code) serait de définir une variable qui marque la date actuelle pour cet utilisateur pendant que votre script boucle les dates (en fonction de la façon dont vous tirez les dates). Cette variable serait vérifiée dans le modèle et définirait une classe CSS ou un ID pour cette date afin de la mettre en évidence.