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

cs_Eric25 175 Messages postés mardi 19 octobre 2004Date d'inscription 26 juin 2006 Dernière intervention - 8 juin 2005 à 21:28 - Dernière réponse : cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention
- 9 juin 2005 à 12:30
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
Afficher la suite 

6 réponses

Répondre au sujet
cs_Eric25 175 Messages postés mardi 19 octobre 2004Date d'inscription 26 juin 2006 Dernière intervention - 9 juin 2005 à 12:13
+5
Utile
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...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Eric25
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 8 juin 2005 à 22:57
0
Utile
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>
Commenter la réponse de cs_Anthomicro
cs_Eric25 175 Messages postés mardi 19 octobre 2004Date d'inscription 26 juin 2006 Dernière intervention - 8 juin 2005 à 23:42
0
Utile
Merci beaucoup, c nickel...
Commenter la réponse de cs_Eric25
cs_Eric25 175 Messages postés mardi 19 octobre 2004Date d'inscription 26 juin 2006 Dernière intervention - 9 juin 2005 à 10:23
0
Utile
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
Commenter la réponse de cs_Eric25
cs_Eric25 175 Messages postés mardi 19 octobre 2004Date d'inscription 26 juin 2006 Dernière intervention - 9 juin 2005 à 10:57
0
Utile
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...
Commenter la réponse de cs_Eric25
cs_Anthomicro 9440 Messages postés mardi 9 octobre 2001Date d'inscription 13 avril 2007 Dernière intervention - 9 juin 2005 à 12:30
0
Utile
oki

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




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Commenter la réponse de cs_Anthomicro

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.