Php et les dates...

WRInaute discret
Bonjour,

Je souhaiterais créer un fonction qui me permetterais d'avoir le nombre de jours qui s'est déroulé depuis telle date (au format "2002-07-05") jusqu'à maintenant (le moment où la fonction s'exécute)

Cordialement,

Raphaël
 
WRInaute impliqué
Bonjour,

Je pense que cette fonction te conviendra:
<?
function diff_date($date1, $date2)
{
$tab1 = explode('-', $date1);
$tab2 = explode('-', $date2);
$timestamp1 = mktime(12, 0, 0, $tab1[1], $tab1[0], $tab1[2]);
$timestamp2 = mktime(12, 0, 0, $tab2[1], $tab2[0], $tab2[2]);
return floor((($timestamp1-$timestamp2))/(3600*24));
}
?>
Pour afficher le résultat
<?
$auj = date('d-m-Y', time());
$nbjours=diff_date($auj, '??-??-????');/// choisir la date que tu souhaite
echo $nbjours;
?>
Loïc.
 
WRInaute discret
pour
Code:
$aujdate = date('d-m-Y', time());

ne faudrait-il pas mettre
Code:
$aujdate = date('Y-m-d', time());

plutôt? car mes dates sont comme écrit plus haut au format "2002-07-05"...
 
WRInaute discret
Pour la différence de date entre le 26 Février 2004 et aujourd'hui (28 Février 2004), il me sort 12476 jours!...


Il y a comme un bug... :?
 
WRInaute impliqué
En je suis parti sur des dates au formats Français JJ-MM-AAAA, tu tiens absolument à utiliser des AAAA-MM-JJ ? Si tu n'articules pas le script sur une base de donnée il n'y a pas de raisons.

Pour utiliser les dates AAAA-MM-JJ, il ne suffit pas de faire la modif que tu as mis plus haut.
 
WRInaute impliqué
Le script pour des dates AAAA-MM-JJ
<?
function diff_date($date1, $date2)
{
$tab1 = explode('-', $date1);
$tab2 = explode('-', $date2);
$timestamp1 = mktime(12, 0, 0, $tab1[1], $tab1[2], $tab1[0]);
$timestamp2 = mktime(12, 0, 0, $tab2[1], $tab2[2], $tab2[0]);
return floor((($timestamp1-$timestamp2))/(3600*24));
}
?>
<?
$auj = date(Y-m-d', time());
$nbjours=diff_date($auj, '????-??-??');/// choisir la date que tu souhaite
echo $nbjours;
?>
Loïc.
 
WRInaute discret
En je suis parti sur des dates au formats Français JJ-MM-AAAA, tu tiens absolument à utiliser des AAAA-MM-JJ ? Si tu n'articules pas le script sur une base de donnée il n'y a pas de raisons.

Pour utiliser les dates AAAA-MM-JJ, il ne suffit pas de faire la modif que tu as mis plus haut.

oki... :)

Le script pour des dates AAAA-MM-JJ
Citation:
<?
function diff_date($date1, $date2)
{
$tab1 = explode('-', $date1);
$tab2 = explode('-', $date2);
$timestamp1 = mktime(12, 0, 0, $tab1[1], $tab1[2], $tab1[0]);
$timestamp2 = mktime(12, 0, 0, $tab2[1], $tab2[2], $tab2[0]);
return floor((($timestamp1-$timestamp2))/(3600*24));
}
?>

Citation:
<?
$auj = date(Y-m-d', time());
$nbjours=diff_date($auj, '????-??-??');/// choisir la date que tu souhaite
echo $nbjours;
?>

Loïc.

Merci beaucoup pour cette petite fonction très pratique!

Cordialement,

Raphaël
 
Discussions similaires
Haut