problème pour ajouter un nombre à une variable (heure UTC et CEST)

problème pour ajouter un nombre à une variable (heure UTC et CEST) - PHP - Programmation

Marsh Posté le 18-10-2011 à 19:05:49    

Bonjour,
J'ai un script PHP qui permet d'afficher des informations récupérée, de les décoder et de les afficher sur une page web. Voici le résultat : http://route63.free.fr/meteo/metar.php
Le problème que je rencontre est l'affichage de la date/heure de création du bulletin qui est UTC, je voudrais le convertir en heure CEST (heure locale). Voici la partie de code que je souhaite modifier :  

Code :
  1. function rp_details($metar) {
  2. global $index;
  3. $issued = "<b>Date de création du bulletin :</b> le ".$metar[0]." à ".$metar[1]." UTC.<br/>";
  4. $rp_details = $issued."<br/>";
  5. $index = 3;
  6. return ($rp_details);
  7. }


.$metar[0]. correspond à la date d'émission du rapport que j'ai modifier pour afficher jj/mm/aaaa comme ceci :

Code :
  1. $date_us = $metar[0];
  2. $tabd = explode("/", $date_us);
  3. $date_fr = $tabd[2].'/'.$tabd[1].'/'.$tabd[0] ;     // j'ai donc remplacé dans la fonction ".$metar[0]." par $date_fr ce qui fonctionne correctement.


.$metar[1]. correspond à l'heure d'émission du rapport ( exemple : 18:00 - heure UTC que je souhaite modifier)
Comment puis-je faire pour ajouter deux heures ou une heure à cette variable et/ou (ce serait le pied) un ajout automatique en fonction de l'heure d'hiver et d'été.
Je suis encore débutant en php et malgré mes nombreuses recherches sur google, je n'arrive pas à adapter les fonctions de manipulation de date/heure à mon cas.
Merci pour votre aide


Message édité par remstux le 18-10-2011 à 19:16:50
Reply

Marsh Posté le 18-10-2011 à 19:05:49   

Reply

Marsh Posté le 19-10-2011 à 10:53:09    

Faire des concaténations et des explode() n'est peut-être pas utile, parce qu'avec date() et strtotime(), on peut tout faire. Voir la doc à ce sujet http://fr2.php.net/manual/en/function.strtotime.php et http://fr2.php.net/manual/en/function.date.php
 
Je n'ai pas le temps de regarder le code en détail, mais le principe est  
 
- au départ, il faut avoir une date complète (pas seulement l'heure, mais la date et l'heure), si nécessaire en ajoutant la date du jour ou une date bidon.  
 
- faire un ajout d'un décalage avec strtotime(), par exemple $date_tmp=strtotime("+20 day", $date_source), $date_tmp=strtotime("+2 hour", $date_source), ...
 
- formater et/ou filtrer la partie de la date que l'on veut avec date(), par exemple $heure_finale = date("H:i:s", $date_tmp);
 
 
 

Reply

Marsh Posté le 19-10-2011 à 11:17:19    

Sinon, selon ta version de PHP, tu peux te tourner vers les classes DateTime et DateTimeZone.
 
Par exemple, instancier un objet DateTime ayant pour timezone UTC, si tu changes sa timezone par autre chose, l'heure est ajustée en fonction.
Ces deux classes permettent des choses très pratiques.


---------------
Mon Feedback !
Reply

Marsh Posté le 22-10-2011 à 10:04:46    

Merci olivthill et Tirkyth pour vos réponses, je vais me pencher sur les docs, j'espère juste ne pas être trop dépassé, mes connaissances sont limitées mais bon j'ai encore beaucoup à apprendre et ce sera avec plaisir que je donnerai des nouvelles ici si j'aboutis.
Bonne journée à vous :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed