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

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

Votre réponse

6 réponses

Meilleure réponse
cs_Eric25
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Dernière intervention
26 juin 2006
- 9 juin 2005 à 12:13
5
Merci
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...

Merci cs_Eric25 5

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cs_Eric25
cs_Anthomicro
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
- 8 juin 2005 à 22:57
0
Merci
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
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Dernière intervention
26 juin 2006
- 8 juin 2005 à 23:42
0
Merci
Merci beaucoup, c nickel...
Commenter la réponse de cs_Eric25
cs_Eric25
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Dernière intervention
26 juin 2006
- 9 juin 2005 à 10:23
0
Merci
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
Messages postés
175
Date d'inscription
mardi 19 octobre 2004
Dernière intervention
26 juin 2006
- 9 juin 2005 à 10:57
0
Merci
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
Messages postés
9440
Date d'inscription
mardi 9 octobre 2001
Dernière intervention
13 avril 2007
- 9 juin 2005 à 12:30
0
Merci
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.