Как конвертировать время в секунды в DateControl?

Доброй ночи.
На сайте, в форме использую DateControl.
Немного разобрался с плагином, но возникло два вопроса.
Первый вопрос:
Мне надо сохранить в отдельные поля таблицы дату и время в формате unixtime.
В настройках плагина указал следующее:
<?php
        'datecontrol' =>  [
            'class' => '\kartik\datecontrol\Module',
// остальные настройки удалил, чтобы не растягивать)))
            'saveSettings' => [
                Module::FORMAT_DATE => 'php:U',
                Module::FORMAT_TIME => 'php:U'
            ],
        ]
?>

Поля в базе типа integer(11). При таких настройках дата сохраняется нормально, а вот время сохраняется в виде "-2147483648"

Как сделать так, чтобы время сохранялось в секундах? Или лучше сделать поле в таблице string и хранить время в формате "00:00"(поиск по этому полу осуществляться не будет, просто для информации)?

И второй вопрос, как сделать так, чтобы дату во втором DateControl нельзя было выбрать меньше чем в первом?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Хранить отдельно время и дату - это странно, так как data в формате unix уже содержит время. Зачем еще одно поле?
а вот время сохраняется в виде "-2147483648"

А что Вас смущает, это: 13.12.1901 @ 23:17:11 MMT (GTM +02:31)
Вообще время сложно хранить без даты в таком формате. Так как это количество секунд, прошедших с полуночи (00:00:00 UTC) 1 января 1970 года. Соответственно какое бы значение Вы не указали - оно содержит значение и даты и времени.

И второй вопрос, как сделать так, чтобы дату во втором DateControl нельзя было выбрать меньше чем в первом?

DateControl этого не должен уметь делать, в отличии от виджета, которым Вы пользуетесь для этого. И вот в настройках виджета наверняка есть такая возможность.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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