Difference entre 2 date et heure

Richardphp
Invité n'ayant pas de compte PHPfrance

20 juil. 2006, 02:14

Bonjour,

Oui j'ai bien cherché mais j'ai rien trouver pour php 4 (une classe existe ici pour le php5 mais bon ...)

Donc en gros quelqu'un peut me dire comment je pourrais soustraire 2 date de ce format ?

2006-07-20 19:26:45 - 2006-07-19 13:42:00
(mes 2 date ne sont jamais la date d'aujourd'hui)

j'aimerais bien avoir un résultat du genre la différence est 0 jour 4h 8 sec

j'ai beau cherché j'ai rien trouvé qui fait cela :-(

Je vous remercie d'avance !

Mammouth du PHP | 19672 Messages

20 juil. 2006, 07:42

Transforme tes dates en timestamp avec mktime() et fais le calcul sur le résultat : ce sera plus simple de faire une soustraction d'un nombre de secondes et déterminer ensuite combien le résultat représente en nombre de secondes/miutes/heures/jours/etc...
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Richardphp
Invité n'ayant pas de compte PHPfrance

20 juil. 2006, 19:49

Voici donc mon code pour ceux qui rechercherais la même chose ...
Fonctionne mais peut surement être mieux ....
$date = "2006-07-19 13:05:12";
$jour = substr($date,8,2); // on récupère le jour 
$mois = substr($date,5,2); // puis le mois 
$annee = substr($date,0,4); // et l'annee 
$heure = substr($date,10,2); // et l'HEURE 
$minute = substr($date,13,2); // et MINUTES 

$timestamp = mktime($heure,$minute,0,$mois,$jour,$annee); 
$presentement = time(); 
$ecart_secondes = $timestamp-$presentement;  
$ecart_jours = floor($ecart_secondes / (60*60*24));
$ecart_heure = floor(($ecart_secondes - ($ecart_jours * 86400)) /(60*60));
$ecart_minute =floor(($ecart_secondes - ($ecart_jours * 86400) - ($ecart_heure * 3600)) / 60);
print$ecart_jours." Jours"." ".$ecart_heure." heures"." ".$ecart_minute." minutes";
Voilà encore une fois merci pour la réponse vous faites du bon boulot !