Как вывести дату в формате "Времени прошло"

Многие сайты социальных сетей, такие как Twitter, Reddit, Digg используют формат дат, который называется “Времени прошло”. То есть, если вы разместили заметку 1 Февраля, а сегодня 10 Февраля, то дата будет выглядеть как "Прошло 9 дней". Для организации на своем сайте дат в таком формате добавим следующую функцию к файлу темы functions.php.
function  timeAgo($timestamp, $granularity=2, $format='Y-m-d H:i:s'){
        $difference = time() - $timestamp;
        if($difference < 0) return '0 секунд прошло';
        elseif($difference < 864000){
                $periods = array('недель' => 604800,'дней' => 86400,'часов' => 3600,'минут' => 60,'секунд' => 1);
                $output = '';
                foreach($periods as $key => $value){
                        if($difference >= $value){
                                $time = round($difference / $value);
                                $difference %= $value;
                                $output .= ($output ? ' ' : '').$time.' ';
                                $output .= (($time > 1 && $key == 'дней') ? $key.'секунд' : $key);
                                $granularity--;
                        }
                        if($granularity == 0) break;
                }
                return ($output ? $output : '0 секунд').' прошло';
        }
        else return date($format, $timestamp);
}

Теперь можно использовать ее в теме. Нужно помещать следующий код везде в главном цикле, где требуется выводить дату в формате "Времени прошло" для заметки.
$time = timeAgo($dateRef);

Теги:
дата
Добавлено: 02 Мая 2018 09:52:47 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...