Calculer la duree entre deux date [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
mardi 14 juillet 2015
Statut
Membre
Dernière intervention
22 novembre 2016
-
achraf1996
Messages postés
29
Date d'inscription
mardi 14 juillet 2015
Statut
Membre
Dernière intervention
22 novembre 2016
-
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

Messages postés
1428
Date d'inscription
mercredi 29 juillet 2009
Statut
Contributeur
Dernière intervention
24 janvier 2019
87
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 80961 internautes nous ont dit merci ce mois-ci

Messages postés
1428
Date d'inscription
mercredi 29 juillet 2009
Statut
Contributeur
Dernière intervention
24 janvier 2019
87
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));

Messages postés
27307
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 janvier 2020
2028
Bonjour,

Tu peux regarder ici : http://php.net/manual/fr/datetime.diff.php
Messages postés
29
Date d'inscription
mardi 14 juillet 2015
Statut
Membre
Dernière intervention
22 novembre 2016

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
miramaze
Messages postés
1428
Date d'inscription
mercredi 29 juillet 2009
Statut
Contributeur
Dernière intervention
24 janvier 2019
87
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"));
Messages postés
29
Date d'inscription
mardi 14 juillet 2015
Statut
Membre
Dernière intervention
22 novembre 2016

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
Messages postés
29
Date d'inscription
mardi 14 juillet 2015
Statut
Membre
Dernière intervention
22 novembre 2016

et d'avoir le tout sous forme d'heur

merci
Messages postés
29
Date d'inscription
mardi 14 juillet 2015
Statut
Membre
Dernière intervention
22 novembre 2016

merci miramaze :)