2017-10-19 33 views
1

Je travaille avec API qui me saisit les statistiques horaires. Malheureusement, je ne peux pas définir de fuseau horaire, donc ce que je reçois pour la colonne heure est juste un nombre qui représente cette valeur dans le fuseau horaire EST.Comment faire pour modifier le fuseau horaire en PHP en fonction d'un nombre qui représente l'heure en particulier?

Y a-t-il un moyen de convertir cette information temporelle en un autre fuseau horaire?

Voici comment le tableau ressemble:

array (2) 
result => array (20) 
| 0 => array (14) 
| | impressions => 90177 
| | clicks => 186 
| | video_hits => 0 
| | video_views => 0 
| | value => 90.177 
| | goals => 52 
| | hour => 15 
| | ctr => 0.20626101999401 
| | cpm => 0.01 
| | cpv => 0 
| | vtr => 0 
| | cpc => 0.0048482258064516 
| | cost => 0.90177 
| | ecpa => 0.017341730769231 

heure est donc 15 par exemple. 15h00 Je dois changer le fuseau horaire de cette interprétation en fuseau horaire local.

Des idées?

Répondre

0

EST ou EDT? (L'heure d'été est importante).

Je suppose EDT. Dans ce cas, et en supposant la date n'a pas d'importance, essayez:

$date = DateTime::createFromFormat('H', $hour, new DateTimeZone('America/New_York')); 
$date->setTimezone(new DateTimeZone($userTimeZone)); 
$userHour = $date->format('H'); 
+0

Cela me donne: Erreur fatale: Uncaught Exception: DateTimeZone :: __ construct(): inconnu ou mauvais fuseau horaire() dans .. – depi

+0

Avez-vous utilisé valide fuseau horaire? Cette erreur est assez explicite. – Devon

+0

Dammit, j'ai oublié de changer le $ userTimeZone. Fonctionne parfaitement maintenant. Vous êtes l'homme Devon! – depi