Как вывести дату в формате "Времени прошло"
Многие сайты социальных сетей, такие как 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);
Комментарии:
Нету комментариев для вывода...