2
0
forked from Wavyzz/dolibarr

Fix: La fonction dolibarr_print_date accepte indiffremment une date au format timestamp tout comme au format YYYY-MM-DD.

This commit is contained in:
Laurent Destailleur
2004-07-17 17:16:42 +00:00
parent 3e9a4232c2
commit c1c365c3c1
3 changed files with 122 additions and 42 deletions

View File

@@ -165,14 +165,33 @@ function dolibarr_print_ca($ca)
/*!
\brief formattage de la date
\param time date
\param format format de la date "%d %b %Y"
\param time date timestamp ou au format YYYY-MM-DD
\param format format de la date "%d %b %Y"
\remarks retourne la date format<61>e
*/
function dolibarr_print_date($time,$format="%d %b %Y")
{
return strftime($format,$time);
# Analyse de la date
if (eregi('^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?',$time,$reg)) {
// Date au format 'YYYY-MM-DD' ou 'YYYY-MM-DD HH:MM:SS'
$syear = $reg[1];
$smonth = $reg[2];
$sday = $reg[3];
$shour = $reg[4];
$smin = $reg[5];
if ($syear < 1970 && $_SERVER["WINDIR"]) {
# Le formatage ne peut etre appliqu<71> car windows ne supporte pas la fonction
# mktime si l'ann<6E>e est inf<6E>rieur <20> 1970. On retourne un format fixe
return "$syear-$smonth-$sday";
} else {
return strftime($format,mktime($shour,$smin,0,$smonth,$sday,$syear));
}
}
else {
// Date est un timestamps
return strftime($format,$time);
}
}