JoJo738
Messages postés
1267
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
29 juin 2010
2
10 juil. 2008 à 13:24
Salut :p
J'ai essayé de coder quelque chose ... mais bon :s Ca marche pas vraiment ...
function to_days($date)
{
$return = 0;
// Si la date est correcte pour Php
if( ( $date_time = strtotime($date) ) )
{
$return += date('z', $date_time) + 1;
// + nombre de jours depuis le début de l'année
// +1 car commence à zero
$return += floor( date('Y', $date_time) * 365.25);
// On ajoute le nombre de jours en fonction des années (+ bisextilles)
}
else
{
// Permet un calcul perpétuel
list($years, $months, $days) = split('[-/.]', $date);
$list_days_month = array(31, ( $years % 4 ? 28 : 29 ), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
$return += $days;
for( $i = 0 ; $i < $months - 1 ; $i++ )
{
$return += $list_days_month[$i];
}
$return += floor( $years * 365.25 );
}
return $return;
}
Ca me retourne :
* en orange : les dates invalides pour Php ( < 1970). MySQL retourne un resultat à partir de l'an 0200(-01-01) ...
Date |Nombre Jours MySQL |Nombre Jours PHP |Différence |----
0001-01-01, 730851, 366, 730485, ----
0200-01-01, 73049, 73051, -2, ----
0500-01-01, 182622, 182626, -4, ----
1000-01-02, 365244, 365252, -8, ----
1800-12-31, 657801, 657816, -15, ----
1970-01-01, 719528, 719543, -15, ----
1970-09-04, 719774, 719789, -15, ----
1970-10-16, 719816, 719831, -15, ----
1974-11-27, 721319, 721334, -15, ----
1984-12-26, 725001, 725017, -16, ----
1987-06-10, 725897, 725912, -15, ----
1988-04-17, 726209, 726225, -16, ----
1988-10-08, 726383, 726399, -16, ----
1990-11-11, 727147, 727162, -15, ----
1995-06-02, 728811, 728826, -15, ----
2000-01-18, 730502, 730518, -16, ----
2004-12-31, 732311, 732327, -16, ----
2008-05-15, 733542, 733558, -16, ----
2008-06-09, 733567, 733583, -16
Comme tu peux le voir, malgré le bon calcule ... il y a une différence de 14 à 16 (voir moins après une certaine date) jours :s
Aurais-je oublié quelque chose ???
Sinon, je ne connais pas d'équivalent à cette fonction. Il n'y en a pas non plus dans les fonctiosn date de Php
<hr />Si ma reponse te convient, merci de l'accepter !