Как сохранить автоматически дату в формате timestamp на yii2?

Ребят, добрый день, вопрос
Повесил класс
public function behaviors()
    {
        return [
            'timestamp' => [
                'class' => TimestampBehavior::className(),
                'attributes' => [
                    ActiveRecord::EVENT_BEFORE_INSERT => 'created_at',
                    ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_at',
                ],
            ],
        ];
    }

Но ругается на то что неверный форма, сохраняет в типе int 594321564
Как мне сказать yii-ке что нужно сохранять в формате timestamp: data time: minute: sec и так далее
  • Вопрос задан
  • 1171 просмотр
Решения вопроса 2
Demetriy
@Demetriy
веб и мобильная разработка
https://donkovtcev.ru/notes/yii2-date-to-time-beha...

upd: перепутал вопрос, вероятно просто надо сделать так:
public function behaviors()
    {
        return [
            'timestamp' => [
                'class' => TimestampBehavior::className(),
                'attributes' => [
                    ActiveRecord::EVENT_BEFORE_INSERT => 'created_at',
                    ActiveRecord::EVENT_BEFORE_UPDATE => 'updated_at'
                ],
                'value' => new Expression('NOW()')
            ],
        ];
?>
Ответ написан
@LAV45
Можете подключить CorrectDateBehavior
Это проксирующий behavior который преобразует даты в unixtime => datetime и обратно
Подключаете behavior
public function behaviors()
{
    return [
        [
            'class' => CorrectDateBehavior::class,
            'format' => 'datetime',
            'attributes' => [
                'dateFrom' => 'date_from',
                'dateTo' => 'date_to',
            ]
        ]
    ];
}

И пользуетесь
$model = new Post();
$model->date_from = 1524775512;
echo $model->dateFrom; // 26.4.2018 20:45:12

$model->dateFrom = '01.05.2018';
echo $model->date_from; // 1515110400
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы