Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1456 connectés 

  FORUM HardWare.fr
  Programmation

  PHP : petite question...calculer le temps entre 2 dates...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PHP : petite question...calculer le temps entre 2 dates...

n°55269
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 26-08-2001 à 16:14:40  profilanswer
 

voila ma date est dans ce format:
date("Y,m,d,H,i,s" )
 
j'en affichhe 2 a un peu pres 40 seconde d'intervalle.,
 
afficher :"entre les deux date il s'est ecoulé 40 secondes."
 
enclair c'est une comparaison entre les 2 dates..
merci pour votre aide  
a+

 

[edtdd]--Message édité par Texaff nbvcxwqazerty--[/edtdd]

mood
Publicité
Posté le 26-08-2001 à 16:14:40  profilanswer
 

n°55276
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 26-08-2001 à 16:30:03  profilanswer
 

up !  
pourtant ca a l'air simple mais j'ai b0 chercher partout...

 

[edtdd]--Message édité par Texaff nbvcxwqazerty--[/edtdd]

n°55277
youdontcar​e
Posté le 26-08-2001 à 16:35:22  profilanswer
 

regarde mktime().

n°55285
antibillou
Si je t'attrape je te mord !!!
Posté le 26-08-2001 à 17:05:30  profilanswer
 

En effet, Avec mktime(), tu aura ta date au format UNIX (comptage des secondes depuis xx/xx/1970 ainsi en faisant la soustraction des deux dates au format mktime, tu connaitra le temps qui s'est écoulé


---------------
http://212.95.67.13/fla/pri.cgi?a= [...] 50&f=20&g=
n°55302
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 26-08-2001 à 17:52:42  profilanswer
 

antibillou a écrit a écrit :

En effet, Avec mktime(), tu aura ta date au format UNIX (comptage des secondes depuis xx/xx/1970 ainsi en faisant la soustraction des deux dates au format mktime, tu connaitra le temps qui s'est écoulé  




ok je vais voir merci!

n°55319
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 26-08-2001 à 18:43:47  profilanswer
 

bon alors voila mon truc:
 
voici la premiere date:
 
$date1=date("Y,m,d,H:i:s" );
print(mktime($date));
 
 
voici la 2nde(date recuperer d une table mysql creer longtps avant...):
print(mktime($date2));
 
et les 2 print m'affiche sensiblement la meme chose! comment ca se fait?
merci pour votre aide en tout cas!

 

[edtdd]--Message édité par Texaff nbvcxwqazerty--[/edtdd]

n°55320
antibillou
Si je t'attrape je te mord !!!
Posté le 26-08-2001 à 18:54:22  profilanswer
 

Texaff nbvcxwqazerty a écrit a écrit :

bon alors voila mon truc:
 
voici la premiere date:
 
$date1=date("Y,m,d,H:i:s" );
print(mktime($date));
 
 
voici la 2nde(date recuperer d une table mysql creer longtps avant...):
print(mktime($date2));
 
et les 2 print m'affiche sensiblement la meme chose! comment ca se fait?
merci pour votre aide en tout cas!  
 
 




tu a 3 variables, est-ce normal ? ($date, $date1, $date2)


---------------
http://212.95.67.13/fla/pri.cgi?a= [...] 50&f=20&g=
n°55322
youdontcar​e
Posté le 26-08-2001 à 19:05:27  profilanswer
 

Texaff nbvcxwqazerty a écrit a écrit :

bon alors voila mon truc:
 
voici la premiere date:
 
$date1=date("Y,m,d,H:i:s" );
print(mktime($date));
 
 
voici la 2nde(date recuperer d une table mysql creer longtps avant...):
print(mktime($date2));
 
et les 2 print m'affiche sensiblement la meme chose! comment ca se fait?
merci pour votre aide en tout cas!


tout est dans le 'sensiblement' :D mktime() convertit une date en nombre de secondes écoulées depuis ... je sais plus quand.
 
donc mktime($date2) - mktime($date1) te donnera le temps entre les deux dates, en secondes.

n°55323
M@nu
Posté le 26-08-2001 à 19:06:48  profilanswer
 

Encore 1 fois...c'est 100 fois + simple de stocker ds ta bdd le timestamp (nbre de secondes depuis le 1er janv 1970) récupéré avec time() ou plein d'autres fonctions...
=> les opérations entre +sieurs dates st super simples...
=> le passage à une date normale est aussi...super simple...
 
en plus ça prend moins de place ds ta bdd...
 
si avec ça t'es pas convaincu...

n°55324
M@nu
Posté le 26-08-2001 à 19:12:29  profilanswer
 

et autrement si ça te donne la mm chose c parce que t'as pas bien lu la doc...
dans mktime comme ds ttes les fonctions, le séparateur c'est la virgule...et voilà ce que tu demandes en fait...
 
mktime(Y,m,d,H:i:s)  
 
donc comment tu veux que ça marches ?
=> ça, ça te donnerait le timestamp pour cette date : mktime(heure,minute,seconde,mois,jour,annee)  
 
donc si tu tiens vraiment à ton truc, il faut trafiquer ta date avec des regex...

mood
Publicité
Posté le 26-08-2001 à 19:12:29  profilanswer
 

n°55331
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 26-08-2001 à 21:37:48  profilanswer
 

antibillou >> erreur de frappe ;)
you dont care>> en fait c'est bien le code qui est faux
 
 
M@nou>> alors j'ai suivi ce que tu m'as dis c'est a dire ma table contient un bigint a la place d'une date.
 
voila mon code:
 
$tecoule= 0 ;
 
$annee=date(Y);
$mois=date(m);
$jour=date(d);
$heure=date(H);
$minute=date(i);
$seconde=date(s);
 
 
$date1=mktime($heure,$minute,$seconde,$mois,$jour,$annee);
 
$tdata= mysql_query("SELECT * FROM Table WHERE personne like '$personne' ORDER by date DESC" );
 
$nbpse = mysql_numrows($tdata);
 
if ($nbpse != 0)
{$date2 = mysql_result($date2,0,"date" );
 
$tecoule = ($date1-$date2);
 
print($tecoule);
 
 
voila le code c'est donc une personne qui a chaque fois qu'elle se presente affiche une date, et regarde depuis la derniere fois qu'elle venu le temps qui s'est ecoulé.
 
seulement $tecoule augmente tout le temps, a croire que $date2 est la 1 ere entré et pas la derniere comme je le veux
 
bon j'espere que j'ai ete clair...
quelqu'un vois mon erreur?
 
 
EN TOUT CAS MERCI A VOUS TROIS!
 :)

 

[edtdd]--Message édité par Texaff nbvcxwqazerty--[/edtdd]

n°55382
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 09:59:26  profilanswer
 

upupupupupupupupuppppppppp ;)

 

[edtdd]--Message édité par Texaff nbvcxwqazerty--[/edtdd]

n°55399
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 10:32:49  profilanswer
 

Bon enfait je reessaye ce matin ... et ca marche nickel.
allez savoir pkoi!
 
maintenant il me reste a restituer cet enorme nombre en date...
je pense que j'aurai pas trop de probleme.
 
 
merci M@nou pour ta technique!
a+

n°55421
persnet
Creer , non posseder...
Posté le 27-08-2001 à 11:14:33  profilanswer
 

Petite routine que j'ai fait si ca peut t'aider
 
function DiffDate($Date_Appel,$Date_Appeldeb)
{
                /*-------------------------------------------------------------
                Calcul d'uner duree en seconde entre 2 dates
 
                $Tps   = strToTime($Date_Appel);
                $Tpsdeb= strToTime($Date_Appeldeb);
                $dd=substr($Date_Appel,0,2);
                $mm=substr($Date_Appel,3,2);
                $yy=substr($Date_Appel,6,4);
                $hh=substr($Date_Appel,11,2);
                $mi=substr($Date_Appel,14,2);
                $ss=substr($Date_Appel,17,2);
                $dddeb=substr($Date_Appeldeb,0,2);
                $mmdeb=substr($Date_Appeldeb,3,2);
                $yydeb=substr($Date_Appeldeb,6,4);
                $hhdeb=substr($Date_Appeldeb,11,2);
                $mideb=substr($Date_Appeldeb,14,2);
                $ssdeb=substr($Date_Appeldeb,17,2);
                $Tps=mkTime($hh,$mi,$ss,$mm,$dd,$yy);
                $Tpsdeb=mkTime($hhdeb,$mideb,$ssdeb,$mmdeb,$dddeb,$yydeb);
                $Duree = $Tps - $Tpsdeb;
                return $Duree;

n°55423
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 11:15:09  profilanswer
 

$dat=date("H:i:s m/d/Y ",mktime(0,0,$date2));
 
print("$date2" );
il m'affiche  
 
8:25:31  04/22/2033
 
 
hors on est pas trop en 2033?? ni le 22 avril ni a 8:25...

n°55425
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 11:17:00  profilanswer
 

persnet a écrit a écrit :

Petite routine que j'ai fait si ca peut t'aider
 
function DiffDate($Date_Appel,$Date_Appeldeb)
{
                /*-------------------------------------------------------------
                Calcul d'uner duree en seconde entre 2 dates
 
                $Tps   = strToTime($Date_Appel);
                $Tpsdeb= strToTime($Date_Appeldeb);
                $dd=substr($Date_Appel,0,2);
                $mm=substr($Date_Appel,3,2);
                $yy=substr($Date_Appel,6,4);
                $hh=substr($Date_Appel,11,2);
                $mi=substr($Date_Appel,14,2);
                $ss=substr($Date_Appel,17,2);
                $dddeb=substr($Date_Appeldeb,0,2);
                $mmdeb=substr($Date_Appeldeb,3,2);
                $yydeb=substr($Date_Appeldeb,6,4);
                $hhdeb=substr($Date_Appeldeb,11,2);
                $mideb=substr($Date_Appeldeb,14,2);
                $ssdeb=substr($Date_Appeldeb,17,2);
                $Tps=mkTime($hh,$mi,$ss,$mm,$dd,$yy);
                $Tpsdeb=mkTime($hhdeb,$mideb,$ssdeb,$mmdeb,$dddeb,$yydeb);
                $Duree = $Tps - $Tpsdeb;
                return $Duree;  




 
 
ca m'interesse mais en quel forumat sont les dates?

n°55426
M@nu
Posté le 27-08-2001 à 11:18:33  profilanswer
 

on peut remplacer ça :
 
$annee=date(Y);
$mois=date(m);
$jour=date(d);
$heure=date(H);
$minute=date(i);
$seconde=date(s);
 
$date1=mktime($heure,$minute,$seconde,$mois,$jour,$annee);
 
par ça : $date1=time(); ;)
 
et autrement y'en a qui se compliquent bcp la vie ("petite routine"...heu....) ;););)

 

[edtdd]--Message édité par M@nu--[/edtdd]

n°55427
persnet
Creer , non posseder...
Posté le 27-08-2001 à 11:23:33  profilanswer
 

M@nu a ecrit
et autrement y'en a qui se compliquent bcp la vie ("petite routine...heu....)  ;);)  
 
Mes dates sont au format dd/mm/yyyy
T'as une autre solution pour les convertir et utiliser le mktime?

n°55430
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 11:29:19  profilanswer
 

manou>>
:cry: efectivemnt y a plus simple :lol:
 
 
mais ca resoud aps mon probleme :cry:

n°55431
persnet
Creer , non posseder...
Posté le 27-08-2001 à 11:36:21  profilanswer
 

Si ca peut tjs t'aider malgre les remarques de certains, un touuuuuuuute petite routine qui tranforme un temps en hhh:mm:ss
 
function Caldureehms($Duree)
{
// Mise en forme d'une duree (en seconde) au format hh:mm:ss
         $Heure=intval($Duree/3600);
         $Reste=$Duree%3600;
         $Minute=intval($Reste/60);
         $Seconde=$Reste%60;
         $Resultat = $Heure.":".sprintf("%02d",$Minute).":".sprintf("%02d",$Seconde);
         return $Resultat;

n°55434
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 11:39:13  profilanswer
 

persnet a écrit a écrit :

Si ca peut tjs t'aider malgre les remarques de certains, un touuuuuuuute petite routine qui tranforme un temps en hhh:mm:ss
 
function Caldureehms($Duree)
{
// Mise en forme d'une duree (en seconde) au format hh:mm:ss
         $Heure=intval($Duree/3600);
         $Reste=$Duree%3600;
         $Minute=intval($Reste/60);
         $Seconde=$Reste%60;
         $Resultat = $Heure.":".sprintf("%02d",$Minute).":".sprintf("%02d",$Seconde);
         return $Resultat;  




 
mais moi il doit y avoir l'annee le moi et le jour aussi...
sinon pour ton script plus haut, les date sont en quel format?

n°55438
persnet
Creer , non posseder...
Posté le 27-08-2001 à 11:46:01  profilanswer
 

Mes dates sont au format DD/MM/YYYY HH:MI:SS
pour l'annee le mois et le jour tu peux tres bien diviser ton timestamp par 86400 et tu aura le nombre de jours ecoules

n°55443
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 11:59:32  profilanswer
 

persnet a écrit a écrit :

Mes dates sont au format DD/MM/YYYY HH:MI:SS
pour l'annee le mois et le jour tu peux tres bien diviser ton timestamp par 86400 et tu aura le nombre de jours ecoules  




 
ton truc a l'air plutot complexe, vu que c'est du bidouillage.
(mais ca marche !)
 
je prefere faire technique "correct".
surtout que je sans que je suis proche du but seulement y a une enorme couille lors de l'affichage de la date!
pourquoi il m'affiche 2033 c'est incomprehensible!!

n°55501
Texaff nbv​cxwqazerty
salut les blaireaux!
Posté le 27-08-2001 à 14:57:00  profilanswer
 

Upupupupupupupupppppp
 
 
par ce que la je comprends pos :??:

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  PHP : petite question...calculer le temps entre 2 dates...

 

Sujets relatifs
[PHP] mise à jour de site à l'aide de la fonction readfile()[ JavaScript ] : question a 1000 balles ......
question a la conj'ai honte de ma question!!!!!
[PHP] if... else... while.. boucle.. sos....[PHP] Variable d'environnement REMOTE_PORT
[PHP] Comment copier une page html ?[PHP] Problème d'accès à un fichier distant avec include()
[SQL Server / ASP / Dates ] - AU SECOUUUUUUUUUR ! :)question con en c++ mais j'suis curieux...
Plus de sujets relatifs à : PHP : petite question...calculer le temps entre 2 dates...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR