TheRec
samedi 15 avril 2006 à 21:14
Bonsoir,
cela te donne le nombre de jour(s) entier(s) entre deux dates (peu importe celle qui est plus élevé que l'autre (utilisation de
abs) :
CODE
<?php
function datediff($timestamp1,$timestamp2) {
return intval(abs($timestamp1-$timestamp2)/86400);
}
function date_uk2iso($date) {
return join("-",array_reverse(explode("/",$date)));
}
$date1 = date_uk2iso("15/02/2006");
$date2 = date_uk2iso("15/01/2006");
echo datediff(strtotime($date1),strtotime($date2));
?>
Explications : dans
datediff on trouve la différence entre deux timpestamps UNIX, ce qui donne un résultat en secondes, on divise donc par : 60 (secondes) * 60 (minutes) * 24 (heures) = 86400
intval set a ne récupérer que la valeur entière du résultat (les minutes et seconde du dernier jour entamé ou non ne t'intéressent pas, sauf erreur).
La fonction
date_uk2iso sert à convertir la date dans le format que tu as fourni (Grande-Bretagne)... La date est scindée par les "/", le tableau retourné et renversé et join à nouveau par des "-"...cela correspond à une date ISO 8601 (YYYY-MM-DD) et grâce à cette conversion tu peux utiliser la fonction
strtotime qui permet d'obtenir un timestamp depuis une date au format "English" ou ISO...