Calculer la duree entre deux date

Résolu
achraf1996 Messages postés 32 Statut Membre -  
achraf1996 Messages postés 32 Statut Membre -
Bonjour,

je souhaite avoir la durée entre deux datetime (d-m-Y H:i)

s'il vous plait aidée moi

merci

7 réponses

miramaze Messages postés 1468 Statut Contributeur 92
 
Hello, j'allais dire comme jordane45 :

https://ideone.com/QCQfCS

<?php

$dateTime1 = new DateTime("2015-07-14");
$dateTime2 = new DateTime("2015-01-01");

$interval = $dateTime2->diff($dateTime1);

var_dump($interval->format("%R%a days"));
3
miramaze Messages postés 1468 Statut Contributeur 92
 
Le principe en même temps c'est de chercher, je crois qu'on a donné assez de pistes.

Pour créer une DateTime avec un format spécifique, il y'a DateTime::createFromFormat().

Exemple live : https://ideone.com/AC6U92

<?php

$date1 = DateTime::createFromFormat("d/m/Y H:i:s", "06/05/15 08:34:32");

$date2 = DateTime::createFromFormat("d/m/Y H:i:s", "07/05/15 10:15:57");

$interval = $date1->diff($date2);

var_dump($interval->format("Le tout : %m mois, %d jours, %h heures, %i minutes, %s secondes"));

$totalHours = $interval->m * 730.4843 + $interval->d * 24 + $interval->h + 0.0166 * $interval->i + 0.0002 * $interval->s;

var_dump(sprintf("En heures : %s", $totalHours));

1
jordane45 Messages postés 40050 Statut Modérateur 4 757
 
Bonjour,

Tu peux regarder ici : https://www.php.net/manual/fr/datetime.diff.php
0
achraf1996 Messages postés 32 Statut Membre
 
dans chaque code que jeu copie de l URL que vous m'avais donne
je rencontre l'erreur suivant
par exemple si j'ai execute le code suivant
<?php
function time_diff($dt1,$dt2){
$y1 = substr($dt1,0,4);
$m1 = substr($dt1,5,2);
$d1 = substr($dt1,8,2);
$h1 = substr($dt1,11,2);
$i1 = substr($dt1,14,2);
$s1 = substr($dt1,17,2);

$y2 = substr($dt2,0,4);
$m2 = substr($dt2,5,2);
$d2 = substr($dt2,8,2);
$h2 = substr($dt2,11,2);
$i2 = substr($dt2,14,2);
$s2 = substr($dt2,17,2);

$r1=date('U',mktime($h1,$i1,$s1,$m1,$d1,$y1));
$r2=date('U',mktime($h2,$i2,$s2,$m2,$d2,$y2));
return ($r1-$r2);

}
$l = time_diff(06/05/15 08:34:32,07/05/15 10:15:57);
echo $l;
?>


erreur est:
Parse error: syntax error, unexpected '08' (T_LNUMBER) in C:\xampp\htdocs\www\project\test date.php on line 22

ligne 22 -->$l = time_diff(06/05/15 08:34:32,07/05/15 10:15:57);

ce n'est pas le seul code que j'ai teste
0
miramaze Messages postés 1468 Statut Contributeur 92
 
Il manque des guillemets dans ton appel de fonction mais on peut faire directement :

Exemple live : https://ideone.com/fpgi9t

<?php

$date1 = new DateTime("06/05/15 08:34:32");
$date2 = new DateTime("07/05/15 10:15:57");

$interval = $date1->diff($date2);

var_dump($interval->format("%m mois, %d jours, %h heures, %i minutes, %s secondes"));
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
achraf1996 Messages postés 32 Statut Membre
 
qu'est ce que je peut faire pour inverser le jour et le mois dans tons exemple l'intervalle entre les deux date de l'exemple est mémé pas 27h
merci
0
achraf1996 Messages postés 32 Statut Membre
 
et d'avoir le tout sous forme d'heur

merci
0
achraf1996 Messages postés 32 Statut Membre
 
merci miramaze :)
0