web-dev-qa-db-fra.com

Le fuseau horaire par défaut est codé en dur au format UTC?

Lors du débogage d’un plug-in que j’écrivais, j’ai remarqué que sur la ligne 36 de wp-settings.php, le fuseau horaire par défaut est codé en dur au format UTC avec un appel à la fonction date_default_set_timezone (). Cela signifie que tout appel aux fonctions de date/heure PHP fonctionnera avec l'heure UTC comme heure locale.

Quelqu'un peut-il m'expliquer s'il vous plaît pourquoi il s'agit d'un choix de conception sensé par l'équipe Wordpress? Je comprends qu’ils souhaitent stocker et manipuler les heures en interne au format UTC, mais une meilleure alternative ne serait-elle pas de passer explicitement à un "mode UTC" lorsqu’ils doivent appliquer une telle logique?

En supposant que vous sachiez régler le fuseau horaire de votre serveur sur php.ini, cet UTC codé en dur invalide en gros le description de la fonction date () de php.net:

date - Format a local heure/date

Ce qui me semble mauvais, non?

6
Gregarious

En quelque sorte, j'ai raté la fonction current_time, qui donne une bonne description de la situation et explique comment gérer correctement le besoin d'obtenir l'heure actuelle du blog local.

http://codex.wordpress.org/Function_Reference/current_time

Bien que le puriste en moi déteste toujours comment WP rend le réglage de fuseau horaire dans php.ini obsolète sans vous donner le choix. * grommeler grommeler *

7
Gregarious

WordPress n'est pas un script simpliste, c'est une application Web étendue. Il inclut ses propres paramètres de fuseau horaire et ses propres fonctions pour la sortie d'informations de date/heure localisées.

Je suppose qu'il est beaucoup plus simple de définir un fuseau horaire de base et de l'utiliser en plus, plutôt que d'essayer de le modifier dans les deux sens autour de toutes les fonctionnalités associées.

2
Rarst