Afficher la bonne heure [php]

Résolu
Bonjour,

voila j'ai un leger soucis, j'ai site en php et je voudrais afficher la date et lheure
alors jai la bonne date les bonne minute mais alors l'heure jai deux heure de decalage entre mon site php et l'heure actuelle voila mon code:

$temp=date('d-m-Y H:i:s');
echo $temp;

quelqu'un aurait t'il une idée??

1 réponse

  1. Oui, ton serveur n'est pas obligatoirement dans la même zone horaire que toi et/ou parametrer pour être caller sur l'heure utc.

    Dans ton script quand tu dois manipuler une date, place (une seul fois bien sur) le code suivant:
    date_default_timezone_set('Region/Pays');


    Tu trouveras les code Region/Pays sur la doc de php https://www.php.net/manual/fr/timezones.php Pour la France, c'est Europe/Paris ce qui donne:

    date_default_timezone_set('Europe/Paris');
    6
    1. super merci beaucoup :)
      0
    2. N'oublie pas de mettre ton sujet en résolu.
      0
    3. ah oui desole jetai trop heureuse que cela fonctionne :)
      0
    4. Tiens une classe que j'avais fait il y a un bout de temps en poo
      <?php
      /*
      *
      */
      class Date extends Config{
      	
      	public $dateTimezone='';
      	public $formatDate='';
      	public $formatHeure='';
      	public $formatDays='';
      	public $formatMonth='';
      	public $basicDays=array('Mon','Tue','Wed','Thu','Fri','Sat','Sun');
      	public $basicMonth=array('January','February','March','April','May','June','July','August','September','October','November','December');
      
      	public function __construct($dateTimezone,$formatDate,$formatHeure,$formatDays,$formatMonth){
      		$this->dateTimezone=$dateTimezone;
      		$this->formatDate=$formatDate;
      		$this->formatHeure=$formatHeure;
      		$this->formatDays=$formatDays;
      		$this->formatMonth=$formatMonth;
      	}
      	
      	public function showAge($tmp){
      		$d=explode('-',date('Y-m-d'));
      		$tmp=explode('-',$tmp);
      		$r=$d[0]-$tmp[0];
      		if($d[1]==$tmp[1]){if($d[2]!=$tmp[2]&&$d[2]<$tmp[2]){$r=$r-1;}}
      		elseif($d[1]<$tmp[1]){$r=$r-1;}
      		return $r;
      	}
      
      	public function dDH(){
      		date_default_timezone_set($this->dateTimezone);
      		return date('Y-m-d H:i:s');
      	}
      	
      	public function cDiffDate($d1,$d2,$t){
      		$r=false;
      		$d=self::dateDifference($d1,$d2);
      		if($t=='y'){
      			$r=$d['y'];
      		}elseif($t=='m'){
      			if($d['y']==0){
      				$r=$d['m'];
      			}
      		}elseif($t=='d'){
      			if($d['y']==0&&$d['m']==0){
      				$r=$d['d'];
      			}
      		}elseif($t=='h'){
      			if($d['y']==0&&$d['m']==0&&$d['d']==0){
      				$r=$d['h'];
      			}
      		}elseif($t=='i'){
      			if($d['y']==0&&$d['m']==0&&$d['d']==0&&$d['h']==0){
      				$r=$d['i'];
      			}
      		}else{
      			if($d['y']==0&&$d['m']==0&&$d['d']==0&&$d['h']==0&&$d['i']==0){
      				$r=$d['s'];
      			}
      		}
      		return $r;
      	}
      	
      	public function dDiff($tmp){
      		$r=false;
      		date_default_timezone_set($this->dateTimezone);
      		$now=new DateTime(date('Y-m-d H:i:s'));
      		$next=new DateTime($tmp);
      		if($now!=$next){
      			$int=$now->diff($next);
      			if($int->invert==0&&$int->days==0){
      				$r=true;
      			}
      		}
      		return $r;
      	}
      	
      	public function dRelativeTime($date,$firstLine=false){
      		$time=self::dateDifference(date('Y-m-d H:i:s'),$date);
      		if($time['n']=='f'){# Futur
      			$return=(($firstLine)?'Pour dans ':'pour dans ');
      		}else{# Passé
      			$return=(($firstLine)?'Il y a ':'il y a ');
      		}
      		if($time['y']>0){$return.=$time['y'].(($time['y']>1)?' ans ':' an ');
      			if($time['m']>0){$return.=$time['m'].' mois ';}
      			if($time['w']>0){$return.=$time['w'].(($time['w']>1)?' semaines ':' semaine ');
      				if($time['wd']>0){$return.='et '.$time['wd'].(($time['wd']>1)?' jours ':' jour ');}
      			}elseif($time['d']>0){$return.='et '.$time['d'].(($time['d']>1)?' jours ':' jour ');}
      		}elseif($time['m']>0){$return.=$time['m'].' mois ';
      			if($time['w']>0){$return.=$time['w'].(($time['w']>1)?' semaines ':' semaine ');
      				if($time['wd']>0){$return.='et '.$time['wd'].(($time['wd']>1)?' jours ':' jour ');}
      			}elseif($time['d']>0){$return.=$time['d'].(($time['d']>1)?' jours ':' jour ');}
      		}elseif($time['w']>0){$return.=$time['w'].(($time['w']>1)?' semaines ':' semaine ');
      			if($time['wd']>0){$return.='et '.$time['wd'].(($time['wd']>1)?' jours ':' jour ');}
      		}elseif($time['d']>0){$return.=$time['d'].(($time['d']>1)?' jours ':' jour ');
      			if($time['h']>0){$return.='et '.$time['h'].(($time['h']>1)?' heures ':' heure ');}
      		}elseif($time['h']>0){$return.=$time['h'].(($time['h']>1)?' heures ':' heure ');
      			if($time['i']>0){$return.='et '.$time['i'].(($time['i']>1)?' minutes ':' minute ');}
      		}elseif($time['i']>0){$return.=$time['i'].(($time['i']>1)?' minutes ':' minute ');
      			if($time['s']>0){$return.='et '.$time['s'].(($time['s']>1)?' secondes ':' seconde ');}
      		}elseif($time['s']>0){$return.=$time['s'].(($time['s']>1)?' secondes ':' seconde ');
      		}else{$return.='moins de 1 seconde';
      		}
      		return trim($return);
      	}
      
      	public function dDateHeure($d,$f=null){
      		date_default_timezone_set($this->dateTimezone);
      		if(!is_int($d)){
      			$tmp=explode(' ',$d);
      			$date=explode('-',$tmp[0]);
      			$heure=explode(':',$tmp[1]);
      			$d=mktime($heure[0],$heure[1],$heure[2],$date[1],$date[2],$date[0]);
      		}
      		if($f!=null){
      			$date=date($f,$d);
      		}else{
      			$date=date($this->formatDate,$d);
      		}
      		$date=str_replace($this->basicDays,$this->formatDays,$date);
      		$date=str_replace($this->basicMonth,$this->formatMonth,$date);
      		if($f==null){
      			$heure=date($this->formatHeure,$d);
      		}
      		if($f!=null){
      			return $date;
      		}else{
      			return $date.' à '.$heure;
      		}
      	}
      
      	public function dDate($d,$f=null){
      		date_default_timezone_set($this->dateTimezone);
      		if(!is_int($d)){
      			$tmp=explode(' ',$d);
      			$date=explode('-',$tmp[0]);
      			$d=mktime(0,0,0,$date[1],$date[2],$date[0]);
      		}
      		if($f!=null){
      			$date=date($f,$d);
      		}else{
      			$date=date($this->formatDate,$d);
      		}
      		$date=str_replace($this->basicDays,$this->formatDays,$date);
      		$date=str_replace($this->basicMonth,$this->formatMonth,$date);
      		if($f==null){
      			$heure=date($this->formatHeure,$d);
      		}
      		return $date;
      	}
      
      	public function dHeure($d){
      		date_default_timezone_set($this->dateTimezone);
      		if(!is_int($d)){
      			$tmp=explode(' ',$d);
      			$heure=explode(':',$tmp[1]);
      			$d=mktime($heure[0],$heure[1],$heure[2],0,0,0);
      		}
      		return date($this->formatHeure,$d);
      	}
      
      	public function dateDifference($date1,$date2){
      		if(!is_int($date1)){
      			$tmp=explode(' ',$date1);
      			$d=explode('-',$tmp[0]);
      			$h=explode(':',$tmp[1]);
      			$date1=mktime($h[0],$h[1],$h[2],$d[1],$d[2],$d[0]);
      		}
      		if(!is_int($date2)){
      			$tmp=explode(' ',$date2);
      			$d=explode('-',$tmp[0]);
      			$h=explode(':',$tmp[1]);
      			$date2=mktime($h[0],$h[1],$h[2],$d[1],$d[2],$d[0]);
      		}
      		$s=$date2-$date1;
      		$n=(($s<0)?'p':'f');
      		$s=abs($s);
      		$y=intval($s/31104000);
      		$s-=$y*31104000;
      		$m=intval($s/2592000);
      		$s-=$m*2592000;
      		$d=intval($s/86400);
      		$s-=$d*86400;
      		$w=round($d/7);
      		$wd=$d-($w*7);
      		if($wd<0){
      			$w=$w-1;
      			$wd=7+$wd;
      		}
      		$h=intval($s/3600);
      		$s-=$h*3600;
      		$i=intval($s/60);
      		$s-=$i*60;
      		return array('n'=>$n,'y'=>$y,'m'=>$m,'w'=>$w,'wd'=>$wd,'d'=>$d,'h'=>$h,'i'=>$i,'s'=>$s);
      	}
      
      	public function __destruct(){}
      }
      ?>
      0