Данная PHP функция преобразует временную метку unix timestamp в привычный формат.
function get_date($timestamp, $show_time = false)
{
if (empty($timestamp)) {
return '-';
} else {
$now = explode(' ', date('Y n j H i'));
$value = explode(' ', date('Y n j H i', $timestamp));
if ($now[0] == $value[0] && $now[1] == $value[1] && $now[2] == $value[2]) {
return 'Сегодня в ' . $value[3] . ':' . $value[4];
} else {
$month_names = array(
'', 'января', 'февраля', 'марта', 'апреля',
'мая', 'июня', 'июля', 'августа', 'сентября',
'октября', 'ноября', 'декабря'
);
$out = $value[2] . ' ' . $month_names[$value[1]] . ' ' . $value[0];
if ($show_time) {
$out .= ' в ' . $value[3] . ':' . $value[4];
}
return $out;
}
}
}
Если с даты еще не прошел день, то выводится время, далее дата с месяцем прописью.
echo get_date(time() - 60);
// Сегодня в 14:41
echo get_date(1549682408);
// 9 февраля 2019
echo get_date(1549682408, true);
// 9 февраля 2019 в 03:20
echo get_date(0);
// -
На многих хостингах не установлен часовой пояс, поэтому функция date() может работать некоректно. Задать его можно следующим образом:
date_default_timezone_set('Europe/Moscow');