2016-10-13 3 views
0

Ich habe eine Yii App mit einer Ansicht, die Details aus einer Datenbank zeigt, wenn der Benutzer auf die Schaltfläche Aktualisieren klickt, öffnet es ein Formular mit den gleichen Details zur Bearbeitung. Allerdings ist das Datum/Uhrzeit-Feld in der Ansicht unterschiedlich, die Zeit ist korrekt, in der Form ist die Zeit eine Stunde zurück. Der Code auf der Ansicht ist:yii datetimepicker zeigt die falsche Zeit

[ 
    'attribute' => 'date_time', 
    'format' => ['date', 'php:d-M-Y H:i'] 
], 

dies das richtige Datum und Uhrzeit angezeigt wird

in Form, der Code ist

echo $form->field($model, 'date_time')->widget(\kartik\widgets\DateTimePicker::className(), [ 
    'convertFormat' => true, 
    'pluginOptions' => [ 
     'autoclose' => true, 
     'format' => 'php:d-M-Y H:i' 
    ], 
]); 

dies die Zeit als 1 Stunde zeigt hinter

in der Datei config/main.php ist die Zeitzone auf

'timeZone' => 'Europe/London' 
eingestellt

Ich habe mit dieser ganzen Tag Flickschusterei und ich kann es einfach nicht klappen, würde schätzen einige Hinweise

Ich habe gerade versucht, diese Zeilen hinzu:

$this_date = $formatter->astime($model->date_time); 
echo $this_date 

und das gibt das Datum und die Uhrzeit, aber wenn ich dann das Feld

echo $form->field($model, $this_date)->widget(\kartik\widgets\DateTimePicker::className(), [ 
    'convertFormat' => true, 
    'pluginOptions' => [ 
     'autoclose' => true, 
     'format' => 'php:d-M-Y H:i' 
    ], 
]); 

ändern bekomme ich eine Fehlermeldung, dass „Attributnamen darf nur Wort-Zeichen enthalten.“

Antwort

0

Der Fehler tritt auf, weil Sie versuchen, auf ein Modellattribut mit dem von Ihnen formatierten Datum zuzugreifen. Verwenden Sie den Wert Attribut statt

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' 
    ], 
]); 
0

es sortiert, verändert das Feld zu

echo 'Incident Date/Time'; 
echo DatePicker::widget([ 
     'name' => 'date_time', 
     'type' => DatePicker::TYPE_COMPONENT_PREPEND, 
     'value' => $this_date, 
     'pluginOptions' => [ 
     'autoclose'=>true 
     ] 
    ]); 

und seine nun das richtige Datum und die Uhrzeit zeigt