Неправильный вывод даты на сайте

Рейтинг: 0Ответов: 2Опубликовано: 14.11.2014

Доброго времени суток всем!

Дело в следующем: когда на сайте я создаю новость, то в поле post_date БД также забивается дата в виде целого числа, т.е. количество секунд с помощью функции time(), но когда я забиваю новость, допустим, сегодня 14.11.2014, то на сайте отображается 15.02.2014.
На сайте не получается разместить новость моложе 30 августа (1417368900).
Помогите с этой неприятной ситуацией разобраться.

Вывод:

$

month = array(
     'Янв', 'Фев', 'Март', 'Апр', 'Май', 'Июнь', 'Июль', 'Авг','Сен', 'Окт', 'Ноя', 'Дек'
);

 $day = date('d', $model->post_date);
 $m = date('N', $model->post_date);
$year = date('Y', $model->post_date);
?>
<div style="float: left;" class="date">
    <span class="day"><?php  echo($day); ?></span>
    <span class="month"><?php  echo($month[$m]); ?></span>
    <span class="year"><?php echo($year); ?></span>
</div>
<h1 style="margin-left: 100px;text-align: left;margin-bottom: 20px;"><?php echo $model->title; ?></h1>
<?php $m =0;?>

запись в бд
public function actionCreate()
    {
        $model=new News;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['News']))
        {
            $model->attributes=$_POST['News'];
            $model->post_date = time();
            if($model->save())
                $this->redirect(array('view','id'=>$model->id));
        }

        $this->render('create',array(
            'model'=>$model,
        ));
    }

В базе поле post_date ---> int(10) хранит секунды.

Ответы

▲ 2

Еще лучше сделайте поле:

timestamp default current_timestamp

И забудьте про ручное добавление даты.

▲ 1

Ну 2014 уже, ну право дело

date(DATE_ISO8601)

еще лучше, еще поддерживаемей, еще более рожее овощее гибчайше

$this->_date = new DateTime;
public function getDate()
{
    return $this->_date->format(DateTime::ISO8601);
}

http://php.net/manual/en/class.datetime.php PHP 5 >= 5.2.0