Bug dans ma fonction strftime() ?
Le
marcelmaigre
Bonjour,
J'essaie en vain de faire marcher cette fonction qui est censée me
retourner différentes sorties avec strftime:
function localdate( $date, $heure = false, $aujourdhui = false, $court
= false )
{
// conversion timestamp unix
$yr = substr($date,0,4);
$mon = substr($date,5,2);
$day = substr($date,8,2);
if( $heure OR $aujourdhui ){
$hr = substr($date,11,2);
$min = substr($date,14,2);
$sec = substr($date,17,2);
}else{
$hr = $min = $sec = 0;
}
$date = mktime($hr,$min,$sec,$mon,$day,$yr);
setlocale("LC_ALL","fr_FR");
if( $heure ){
return strftime( '%A %e %B %Y à %R', $date );
}elseif( $aujourdhui ){
return strftime( 'Aujourd\'hui à %R', $date );
}elseif( $court ){
return strftime( '%e %B %Y', $date );
}else{
return strftime( '%e/%m/%y', $date );
}
}
Le problème est le suivant: en appelant localdate( '1991-08-05',
false, false, true) , rien ne m'est retourné (au lieu de "05 aout
1991"). Les autres sorties fonctionnent parfaitement si je leur
soumets une date complète avec l'heure (type sortie mysql '1991-08-05
08:50:23').
J'ai lu qu'il y avait pas mal de bug avec strftime sur la mailing-list
de php ( http://groups.google.com/groups?hl=...ww.php-dev
), mais peut-être ma fonction a un problème (utilisé sous php-4.3.1)
Merci pour votre aide.
J'essaie en vain de faire marcher cette fonction qui est censée me
retourner différentes sorties avec strftime:
function localdate( $date, $heure = false, $aujourdhui = false, $court
= false )
{
// conversion timestamp unix
$yr = substr($date,0,4);
$mon = substr($date,5,2);
$day = substr($date,8,2);
if( $heure OR $aujourdhui ){
$hr = substr($date,11,2);
$min = substr($date,14,2);
$sec = substr($date,17,2);
}else{
$hr = $min = $sec = 0;
}
$date = mktime($hr,$min,$sec,$mon,$day,$yr);
setlocale("LC_ALL","fr_FR");
if( $heure ){
return strftime( '%A %e %B %Y à %R', $date );
}elseif( $aujourdhui ){
return strftime( 'Aujourd\'hui à %R', $date );
}elseif( $court ){
return strftime( '%e %B %Y', $date );
}else{
return strftime( '%e/%m/%y', $date );
}
}
Le problème est le suivant: en appelant localdate( '1991-08-05',
false, false, true) , rien ne m'est retourné (au lieu de "05 aout
1991"). Les autres sorties fonctionnent parfaitement si je leur
soumets une date complète avec l'heure (type sortie mysql '1991-08-05
08:50:23').
J'ai lu qu'il y avait pas mal de bug avec strftime sur la mailing-list
de php ( http://groups.google.com/groups?hl=...ww.php-dev
), mais peut-être ma fonction a un problème (utilisé sous php-4.3.1)
Merci pour votre aide.

Poser une question


Je crois me rappeler que la fonction strftime marche très mal sous
windows et qu'elle ne renvoie rien sur certains formats
php-4.3.1 compilé sous linux kernel 2.2 ... :(
mais j'ai trouvé le meme genre de probleme:
http://bugs.php.net/search.php?cmd=...rder_by=id