Воспользовался этим кодом:
/**
* Человекопонятная русская дата (и время)
*
* Удалён string $date_input Что-то хоть как-то похожее на дату
* Удалён bool $time Показывать время
* Удалён string
*/
function date_smart($date_input, $time=false) {
$monthes = array(
'', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря'
);
$date = strtotime($date_input);
//Время
if($time) $time = ' G:i';
else $time = '';
//Сегодня, вчера, завтра
if(date('Y') == date('Y',$date)) {
if(date('z') == date('z', $date)) {
$result_date = date('Сегодня'.$time, $date);
} elseif(date('z') == date('z',mktime(0,0,0,date('n',$date),date('j',$date)+1,date('Y',$date)))) {
$result_date = date('Вчера'.$time, $date);
} elseif(date('z') == date('z',mktime(0,0,0,date('n',$date),date('j',$date)-1,date('Y',$date)))) {
$result_date = date('Завтра'.$time, $date);
}
if(isset($result_date)) return $result_date;
}
//Месяца
$month = $monthes[date('n',$date)];
//Года
if(date('Y') != date('Y', $date)) $year = 'Y г.';
else $year = '';
$result_date = date('j '.$month.' '.$year.$time, $date);
return $result_date;
}
echo date_smart('$result_date');
Но выводится дата 1 января 1970 г.
Как исправить?
не пользуйся гк
function rusdate($d, $format = 'j %MONTH% Y', $offset = 0)
{
$montharr = array('января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря');
$dayarr = array('понедельник', 'вторник', 'среда', 'четверг', 'пятница', 'суббота', 'воскресенье');
$d += 3600 * $offset;
$sarr = array('/%MONTH%/i', '/%DAYWEEK%/i');
$rarr = array( $montharr[date("m", $d) - 1], $dayarr[date("N", $d) - 1] );
$format = preg_replace($sarr, $rarr, $format);
return date($format, $d);
}
%MONTH% — русское название месяца (родительный падеж)
%DAYWEEK% — русское название дня недели
echo rusdate( time(), '%DAYWEEK%, j %MONTH% Y, G:i' );
ASllMOV, не работает. Мне только день и месяц нужен
ASllMOV, а, не, работает. Кеш просто старье показывал. Спасибо