Différence entre 2 dates
Résolu
griko
Messages postés
401
Statut
Membre
-
griko Messages postés 401 Statut Membre -
griko Messages postés 401 Statut Membre -
Bonjour,
j'ai un problème sur la différence entre 2 dates,
j'utilise
avec pour $datedeb = 2010-10-11
et pour $datefin = 2010-10-14
il me retourne 1 jour, pour moi, 14-11 ne fait pas 1 !
Quelqu'un pourrait m'éclaircir ? Merci
j'ai un problème sur la différence entre 2 dates,
j'utilise
function date_to_timestamp ($date) {
return preg_match('/^\s*(\d\d\d\d)-(\d\d)-(\d\d)\s*(\d\d):(\d\d):(\d\d)/', $date, $m)
? mktime($m[4], $m[5], $m[6], $m[2], $m[3], $m[1])
: 0;
}
$difdatej = date_to_timestamp($datedeb) - date_to_timestamp($datefin);
avec pour $datedeb = 2010-10-11
et pour $datefin = 2010-10-14
il me retourne 1 jour, pour moi, 14-11 ne fait pas 1 !
Quelqu'un pourrait m'éclaircir ? Merci
A voir également:
- Différence entre 2 dates
- Supercopier 2 - Télécharger - Gestion de fichiers
- Différence entre tcp et udp - Guide
- Nombre de jours entre deux dates excel - Guide
- Difference entre million et milliard - Accueil - Technologies
- 2 ecran pc - Guide
1 réponse
Bien compliqué tout ça. Pourquoi ne pas faire plus simple :
// date de début en secondes
$date_deb = date('U',mktime(0,0,0,10,9,2010));
//date actuel en secondes
$now = date('U');
//différence entre les 2 dates en secondes
$dif = $now - $date_deb;
// on divise par 3600 (seconde dans 1h) *24 (nb heures/jour)
// on arrondi pour le jour
$jour = round($dif/(3600*24));
// on obtient 5 (date du post 14/10/2010)
echo $jour;
// on aurait également pu plutot utiliser list($anneed, $moisd, $jourd) = explode('-', $datedeb); list($anneef, $moisf, $jourf) = explode('-', $datefin); // on transforme la date en timestamp $timestampd = mktime(0, 0, 0, $moisd, $jourd, $anneed); $timestampf = mktime(0, 0, 0, $moisf, $jourf, $anneef); // -- CALCUL -- // on calcule le nombre de secondes d'écart entre les deux dates $ecart_secondes = $timestampf - $timestampd; // puis on tranforme en jours (arrondi inférieur) $ecart_jours = floor($ecart_secondes / (60*60*24));