2016-10-03 3 views
2

Я использую https://github.com/xdan/datetimepicker, чтобы выбрать дату в моей функции добавления. Работает как шарм. Теперь, когда я хочу отредактировать его, он вводит странную дату.CakePHP 3.x и datetimepicker

Пользовательские изменения: 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']); 

DateTimePicker

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

Выход на мой взгляд:

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

отлаживать выход из моей точки зрения редактирования

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

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

    } 

Измените date_default_timezone_set уже UTC. Но это не поможет. Интересно, где мое приложение получает идею от размещения этого в моем выпуске. Когда я снова выберу его с помощью моего dtp и выберем дату, когда он также работает, но он принимает случайную дату, например, 2019-10-10, и вам нужно вернуться полностью, что неудобно:/

Любые идеи ?

EDIT

Я добавил это в моей функции редактирования(), прежде чем я исправлен Субъект и workd.

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

ответ

1

Вы просто установить часовой пояс сервера, используя date_default_timezone_set ('Europe/Berlin'); Но JavaScript не заботится о часовом поясе сервера, если вы не установите. JavaScript всегда старайтесь использовать свое время ПК. Так, Вы должны установить DateTimePicker часовой пояс с помощью JavaScript, если DateTimePicker имеют возможность часовой пояс.

ИЛИ

Попробуйте изменить edit.ctp кода, как показано ниже -

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

Это поможет, но поскольку я уже установил дату и время, когда я добавил его, эта работа не будет:/Я отредактировал вопрос. Я нашел решение, которое работало (в моей функции редактирования) – Isengo

+0

Ahh!Спасибо @Isengo –

+0

Спасибо @Sumon Sarker – Isengo

0

Я добавил это в моем редактировании() функцию, прежде чем я исправлен Субъект и он работает сейчас. Надеюсь, это поможет другим. Если кто-то знает лучший способ, пожалуйста, поделитесь! Я думаю, что это всего лишь обходной путь.

$adress['datetime'] = $adress['datetime']->i18nFormat('yyyy-MM-dd HH:mm'); 
Смежные вопросы