web-dev-qa-db-fra.com

Comment obtenir une date en utilisant le fuseau horaire enregistré dans les options?

Ce code ne fonctionne pas correctement et renvoie l'heure en utilisant le fuseau horaire de l'ordinateur et en ignorant le fuseau horaire stocké dans les options WordPress:

date_default_timezone_set( get_option( 'timezone_string' ) );
$hours = date( 'H', strtotime( $timestamp ) );
date_default_timezone_set(@date_default_timezone_get());

WordPress enregistre le fuseau horaire dans la section des options mais l'option 'timezone_string' dans la table wp_options est vide. De plus, le code génère des avertissements.

Comment obtenir la date en utilisant le fuseau horaire correctement enregistré dans les options?

Où WordPress stocke-t-il un fuseau horaire modifiable dans la section des options?

1
webvitaly

J'utilise ceci:

$mytheme_timezone = get_option('timezone_string'); date_default_timezone_set($mytheme_timezone);

dans mes thèmes functions.php. Pour moi, cela a fonctionné sans aucun avertissement.

J'ai également testé si mon script est dans un fuseau horaire différent de celui de php.ini:

 if (strcmp($mytheme_timezone, ini_get('date.timezone'))){
 echo 'Script timezone differs from ini-set timezone.';
}
else {
 echo 'Script timezone and ini-set timezone match.';
}

S'il vous plaît améliorer cette réponse si vous avez plus de perspicacité.

2
toni_lehtimaki