2016-10-03 15 views
2

Ich verwende https://github.com/xdan/datetimepicker, um ein Datum in meiner Add-Funktion auszuwählen. Klappt wunderbar. Jetzt, wenn ich es bearbeiten will - es gibt ein komisches Datum ein.CakePHP 3.x und datetimepicker

Individuelle Änderungen: bootstrap.php

date_default_timezone_set('Europe/Berlin'); 

edit.ctp

echo $this->Form->input('datetime', ['label' => __('Datum'), 'type'=>'text','id' => 'datetimepicker','selected' => '0000-00-00 00:00:00']); 

Datetime

$('#datetimepicker').datetimepicker({ 
format:'Y-m-d H:i', 
lang: 'de' 
}); 

Ausgang aus meiner Sicht:

<input type="text" name="datetime" id="datetimepicker" value="16.10.19 15:00"> 

Debug-Output von meiner Ansicht bearbeiten

'datetime' => object(Cake\I18n\FrozenTime) { 

     'time' => '2019-10-16T15:00:00+02:00', 
     'timezone' => 'Europe/Berlin', 
     'fixedNowTime' => false 

    } 

Ändern Sie den date_default_timezone_set bereits UTC. Aber das hilft nicht. Ich frage mich, woher meine App die Idee hat, dies in meine Ausgabe zu bringen. Wenn ich es mit meinem dtp wieder wähle und ein Datum wähle, funktioniert es auch - aber es dauert ein zufälliges Datum wie 2019-10-10 und du musst den ganzen Weg zurück gehen, was ziemlich unbequem ist:/

Irgendwelche Ideen ?

EDIT

Ich habe dies in meiner bearbeiten() Funktion, bevor ich das Entity gepatcht und es workd.

$adress['datetime'] = $adress['datetime']->i18nFormat('yyyy-MM-dd HH:mm'); 

Antwort

1

Sie nur die Server-Zeitzone mit date_default_timezone_set gesetzt ('Europe/Berlin'); Aber JavaScript kümmert sich nicht um Server Zeitzone, wenn Sie nicht festgelegt. JavaScript versuchen Sie immer, Ihre PC-Zeit zu verwenden. So, Sie müssen Datetime Zeitzone mit JavaScript, setzen, wenn Datetime die Zeitzone-Option haben.

ODER

Versuchen Sie, Ihre edit.ctp-Code wie folgt zu ändern -

echo $this->Form->input(
'datetime', 
[ 
    'label' => __('Datum'), 
    'type'=>'text', 
    'id' => 'datetimepicker', 
    'default' => date('Y-m-d H:i') #Set time for today 
] 
); 
+1

Das würde helfen, aber weil ich bereits ein Datum gesetzt habe, als ich es hinzugefügt habe, wird das nicht funktionieren:/Ich habe die Frage bearbeitet. Ich habe eine Lösung gefunden, die funktioniert (in meiner Editierfunktion) – Isengo

+0

Ahh!Danke @Isengo –

+0

Danke @Sumon Sarker – Isengo

0

Ich habe dies in meinem bearbeiten() Funktion, bevor ich das Entity gepatcht und es funktioniert jetzt. Hoffe, das wird anderen helfen. Wenn jemand einen besseren Weg kennt, bitte teilen! Ich denke, das ist nur ein Workaround.

$adress['datetime'] = $adress['datetime']->i18nFormat('yyyy-MM-dd HH:mm'); 
Verwandte Themen