我有一个Yii应用程序,其视图显示数据库中的详细信息,当用户单击“更新”按钮时,它会打开一个具有相同详细信息的表单进行编辑。但是日期时间字段在视图上是不同的,时间是正确的,在表单上时间是一小时后面。视图上的代码是:
[
'attribute' => 'date_time',
'format' => ['date', 'php:d-M-Y H:i']
],
这显示正确的日期和时间
在表单中,代码是
echo $form->field($model, 'date_time')->widget(\kartik\widgets\DateTimePicker::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(\kartik\widgets\DateTimePicker::className(), [
'convertFormat' => true,
'pluginOptions' => [
'autoclose' => true,
'format' => 'php:d-M-Y H:i'
],
]);
我收到错误说"属性名称只能包含单词字符。"
答案 0 :(得分:0)
您获得的错误是因为您尝试使用格式化的日期访问模型属性。请改用值属性
echo $form->field($model, 'date_time') >widget(\kartik\widgets\DateTimePicker::className(), [
'convertFormat' => true,
'value'=> $this_date,
'pluginOptions' => [
'autoclose' => true,
'format' => 'php:d-M-Y H:i'
],
]);
答案 1 :(得分:0)
对其进行排序,将字段更改为
echo 'Incident Date/Time';
echo DatePicker::widget([
'name' => 'date_time',
'type' => DatePicker::TYPE_COMPONENT_PREPEND,
'value' => $this_date,
'pluginOptions' => [
'autoclose'=>true
]
]);
现在显示正确的日期和时间