Исходная функция :
/**
* Returns date
*
* @param string $formatmask Date mask
* @param int $udate Date in UNIX timestamp
* @return string
*/
function sed_build_date($dateformat, $udate)
{
global $usr, $cfg;
$result = @date($dateformat, $udate + $usr['timezone'] * 3600);
return($result);
}
Но порой хочется сделать даты красивыми, например как-то по особому выделить время. К примеру вывести дату так:
<span class="sdate">01-01-2014</span><span class="stime">14:10</span>
Сейчас такое можно только хаками, но можно и модифицировать функцию и забацать в ней маску вывода дат ) а шо )
function sed_build_date($dateformat, $udate, $mask="")
{
global $usr, $cfg;
$udate = $udate + $usr['timezone'] * 3600;
if (!empty($mask))
{
$result = preg_replace_callback('#{(.+?)}#isu', create_function('$matches', 'global $udate; return date($matches[1], $udate);'), $mask);
return($result);
}
$result = @date($dateformat, $udate);
return($result);
}
И теперь спокойненько вызываем например так:
$udate = 1388571010;
$dateformat = "d-m-Y";
$mask = "<span class=\"sdate\">{d-m-Y}</span><span class=\"stime\">{H:i}</span>";
$beautyfull = sed_build_date($dateformat, $udate, $mask);
и получаем:
<span class="sdate">01-01-2014</span><span class="stime">14:10</span>
а при обычном вызове
$beautyfull = sed_build_date($dateformat, $udate);
получим стандартно:
01-01-2014
Forever unshaven, red-eyed, detached from reality, with his cockroaches in my head. And let it always will be!