yii datetimepicker显示错误的时间

时间:2016-10-13 14:34:45

标签: php yii2

我有一个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'
    ],
]);

我收到错误说"属性名称只能包含单词字符。"

2 个答案:

答案 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
       ] 
     ]);

现在显示正确的日期和时间