{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Енот * 16.13
[автор] (8 май 2015, 07:04) [0/0] [0] [отв] [спам] [под] +1 | -1

Воспользовался этим кодом:

/**
* Человекопонятная русская дата (и время)
*
* Удалён 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 г.
Как исправить?


Изм. 1 раз. / Посл. изм.
Енот * 16.13
(8 май 2015, 07:06)
2.
Vol"jin * 5.23
(8 май 2015, 07:18) [0/0] [0] [отв] [спам] [под] +1 | -1

не пользуйся гк

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' );

3.
Енот * 16.13
[автор] (8 май 2015, 07:26) [0/0] [0] [отв] [спам] [под] +1 | -1

ASllMOV, не работает. Мне только день и месяц нужен

4.
Енот * 16.13
[автор] (8 май 2015, 08:18) [0/0] [0] [отв] [спам] [под] +1 | -1

ASllMOV, а, не, работает. Кеш просто старье показывал. Спасибо

  • 1 из 1
Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений