8791 sujets

Développement web côté serveur, CMS

Bonjour à tous,

Je suis confronté à un problème dont je n'arrive pas à trouver l'issus.
Je désire connaitre la différence entre deux horaires. Pour celà j'ai établis l'algo suivant :


$deadTime = '12:00:00';

$splitDeadTime = explode(':', $deadTime);
		
$diffTime = mktime($splitDeadTime[0], $splitDeadTime[1], $splitDeadTime[2], 1, 1, 2000) - mktime(date('H'), date('i'), date('s'), 1, 1, 2000);
		
if($diffTime>=0){
	echo 'Difference : '.date("H:i:s", $diffTime);
}


En gros à partir d'un horaire au format 'heure:min:sec' j'affiche la difference qu'il y a entre cet horaire et l'heure actuelle.

Ca fonctionne mis à part que l'heure affichée est incorrect. Par exemple, s'il ne reste que 45min, au lieu d'afficher '00:45:00', l'alga va afficher '01:45:00'.

Pouvez-vous m'aider ? Merci d'avance
Modifié par Kadheus (11 Aug 2008 - 09:34)
salut,

pour citer la doc:

a écrit :
mktime() retourne un timestamp UNIX correspondant aux arguments fournis. Ce timestamp est un entier long, contenant le nombre de secondes entre le début de l'époque UNIX (1er Janvier 1970 00:00:00 GMT) et le temps spécifié.



et le truc important ici c'est GMT. en ce moment la difference de valeur est même (au moins sur ma machine avec ça config ) de 2heures. heure d'été oblige.

tu pourrais utiliser gmdate au lieu de date pour faire comme tu fais. gmdate ce comportant toujours comme s'il etait GMT.

tu peux afficher la difference de date négative aussi d'ailleurs en prenant le négatif

if($diffTime>=0){
	echo 'Difference : '.gmdate("H:i:s", $diffTime);
} else 
echo 'Difference negative -: '.gmdate("H:i:s", -$diffTime);


Pascal
Modifié par CPascal (06 Aug 2008 - 23:02)