#php #yii2
#php #yii2
Вопрос:
У меня есть приложение Yii с представлением, в котором отображаются сведения из базы данных, когда пользователь нажимает кнопку Обновления, открывается форма с теми же данными для редактирования. Однако поле даты и времени в представлении отличается, время указано правильно, в форме время отстает на час. Код в представлении:
[
'attribute' => 'date_time',
'format' => ['date', 'php:d-M-Y H:i']
],
это показывает правильную дату и время
в форме код
echo $form->field($model, 'date_time')->widget(kartikwidgetsDateTimePicker::className(), [
'convertFormat' => true,
'pluginOptions' => [
'autoclose' => true,
'format' => 'php:d-M-Y H:i'
],
]);
это показывает время с опозданием на 1 час
в config/main.php файл, для которого установлен часовой пояс
'timeZone' => 'Europe/London'
Я возился с этим весь день, и я просто не могу с этим разобраться, был бы признателен за некоторые указания
Я только что попытался добавить эти строки:
$this_date = $formatter->astime($model->date_time);
echo $this_date
и это дает правильную дату и время, но если я затем изменю поле на
echo $form->field($model, $this_date)->widget(kartikwidgetsDateTimePicker::className(), [
'convertFormat' => true,
'pluginOptions' => [
'autoclose' => true,
'format' => 'php:d-M-Y H:i'
],
]);
Я получаю сообщение об ошибке «Имя атрибута должно содержать только символы word».
Ответ №1:
Ошибка, которую вы получаете, заключается в том, что вы пытаетесь получить доступ к атрибуту модели с датой, которую вы отформатировали. Вместо этого используйте атрибут value
echo $form->field($model, 'date_time') >widget(kartikwidgetsDateTimePicker::className(), [
'convertFormat' => true,
'value'=> $this_date,
'pluginOptions' => [
'autoclose' => true,
'format' => 'php:d-M-Y H:i'
],
]);
Ответ №2:
отсортировал его, изменил поле на
echo 'Incident Date/Time';
echo DatePicker::widget([
'name' => 'date_time',
'type' => DatePicker::TYPE_COMPONENT_PREPEND,
'value' => $this_date,
'pluginOptions' => [
'autoclose'=>true
]
]);
и теперь он показывает правильную дату и время