Calculer la différence en minutes entre 2 heures [Résolu]

Signaler
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonsoir,

Je voudrais calculer la différence en minutes entre 2 heures. J'ai fais le tour des messages traitant des opérations sur les heures sur le forum mais je n'ai pas trouvé exactement ce que je voulais.
Voici mon code actuel, la différence n'est pas en minute mais il s'agit d'une concaténation entre l'heure et les minutes et en plus ca ne marche pas.
Pouvez vous m'aider a corriger mon code.

mon code (celui-ci intervient pour tester si une session n'est pas ouverte depuis plus de 20 minutes) :
//j'extrais la date et l'heure de la variable session de début de session
list($date, $time) = explode(" ", $_SESSION['debut']);
//Je vais effectuer un calcul sur le temps depuis le début de la session
$HeureDeb = $time;
$HeureActu = date("H:i:s");

$TimeDeb = explode ( ":", $HeureDeb);
$TimeFin = explode ( ":", $HeureActu);

$Duree = date( "Hm", mktime( ($TimeFin[0]-$TimeDeb[0]) , ( $TimeFin[1]-$TimeDeb[1] ) ,0) );

if((!isset($_SESSION["login"])) || ($date<>date("Y-m-d")) ||($Duree>20))
{
[file://\\ fermeture \\ fermeture] de la session
\\ demande d'identification

Merci d'avance

6 réponses

Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Finalement je m'en suis sorti plus simplement:
lors de la creation de la session : $_SESSION['debut']=date("YmdHi");
puis ensuite :
$datesess=$_SESSION['debut'];
$dateactu = date("YmdHi");
$intervalle=($dateactu-$datesess);

Au moins ca marche car meme avec un format valide (je n'avais pas le bon format pour la fonction mktime) : H:i:s m-d-Y, la fonction mktime ne retourne rien d'exploitable...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



tu récupères tes deux dates avec mktime()



ensuite tu fais la différence des deux :



$intervalle=mktime($date1)-mktime($date2);



$duree=$intervalle%60;



ça te retournera le nombre de minutes :-)



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Merci beaucoup, c nickel...
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Euh, en fait je me suis un peu emballé ca ne marche pas...

voilà mon code:
//j'extrais la date et l'heure de la variable session (début de session)
list($datesess, $timesess) = explode(" ", $_SESSION['debut']);
//Je vais effectuer un calcul sur le temps depuis le début de la session
$HeureDeb = $timesess;
$HeureActu = date("H:i:s");
$intervalle=(mktime($HeureActu)-mktime($HeureDeb));
$duree=$intervalle%60;
//Affichage pour tester
echo"deb: $HeureDeb, fin : $HeureActu";
echo"$duree";
//Je test si la validité de la session
if(($datesess<>date("Y-m-d")) ||($duree>20))
{
//include"logout.php";
//header("Location: ident_esp_perso.php");
}

$duree renvoi toujours 0, pourtant le code a l'air correct...
Qu'est-ce qui cloche?

Merci d'avance
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Statut
Membre
Dernière intervention
26 juin 2006
3
Je me suis rendu compte que je ne faisais pas l'opération sur 2 variables de typte timestamp, j'ai corrigé mais ca ne marche tj pas...


mon code :

$datesess=$_SESSION['debut'];
$dateactu = date("Y-m-d H:i:s");
$intervalle=(mktime($dateactu)-mktime($datesess));
$duree=$intervalle%60;

$duree renvoi tj 0,

HELP...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
oki

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>