понедельник, 10 ноября 2008 г.

Функция для вывода даты

Когда-то давно я разбирал движок для форума PunBB и взял от туда функцию, которая выводить дату или время интересным образом. Если дата добавленной информации не превышает одного дня с момента добавления, то выводиться дата в виде — «Сегодня в 15:13:03», если же дата с момента добавления не превышает 2 дней, то дата выводиться в виде — «Вчера в 18:48:26», и наконец, если дата превышает 2 дня с момента добавления информации, то дата выводиться в стандартном виде — «08-11-2008 15:03:24»

Вот сама функция, она простая:
function format_time($timestamp, $date_only = false){
    if ($timestamp == '')
        return "";

    $diff = 0;
    $timestamp += $diff;
    $now = time();

    $date = date("d-m-Y", $timestamp);
    $today = date("d-m-Y", $now+$diff);
    $yesterday = date("d-m-Y", $now+$diff-86400);

    if ($date == $today)
        $date = "Сегодня в ";
    else if ($date == $yesterday)
        $date = "Вчера в ";

    if (!$date_only)
        return $date.' '.date("H:i:s", $timestamp);
    else
        return date("d-m-Y H:i:s", $timestamp);
}


* This source code was highlighted with Source Code Highlighter.


Для того чтобы вывести дату в одном из выше приведённых виде вам надо использовать unix-веремя, пример использования:
echo format_time((time()-15444));

* This source code was highlighted with Source Code Highlighter.

Для того чтобы вывести просто дату и время в стандартном виде, достаточна в функцию добавить ещё один параметр, например:
echo format_time((time()-15444),true);

* This source code was highlighted with Source Code Highlighter.

Комментариев нет: