Afficher la bonne heure [php]

Résolu
Helenedu39 Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   -  
Stanislas Poisson Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   -
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

Stanislas Poisson Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   66
 
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
Helenedu39 Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   111
 
super merci beaucoup :)
0
Stanislas Poisson Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   66
 
N'oublie pas de mettre ton sujet en résolu.
0
Helenedu39 Messages postés 121 Date d'inscription   Statut Membre Dernière intervention   111
 
ah oui desole jetai trop heureuse que cela fonctionne :)
0
Stanislas Poisson Messages postés 424 Date d'inscription   Statut Membre Dernière intervention   66
 
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