У меня проблема с правильным часовым поясом при исправлении объекта.Мой запрос на публикацию выглядит так:
[
'event_date' => '11.07.2019',
'start_time' => '15:00',
'end_time' => '16:00'
]
В моей форме есть календарь и два поля, в которых пользователь может выбрать время начала и окончания.Теперь эти значения являются часовым поясом пользователя.Я хочу преобразовать эти значения в UTC и сохранить их с моей сущностью, которая имеет два поля DATETIME
и одно DATE
.
Чтобы сохранить его правильно без ошибок проверки, у меня есть следующий код для измененияданные перед исправлением:
$event_date = new \DateTime($data['event_date']);
$start_time = new \DateTime($data['start_time']);
$end_time = new \DateTime($data['end_time']);
$start_time->setDate($event_date->format('Y'), $event_date->format('m'), $event_date->format('d'));
$end_time->setDate($event_date->format('Y'), $event_date->format('m'), $event_date->format('d'));
$data['start_time'] = $start_time;
$data['end_time'] = $end_time;
$data['event_date'] = $event_date;
Но, как вы можете видеть из отладки, она неправильно конвертируется.Потому что я нахожусь в часовом поясе Европы, он должен иметь 2 часа меньше.
[
'event_date' => object(DateTime) {
date => '2019-07-11 00:00:00.000000'
timezone_type => (int) 3
timezone => 'UTC'
},
'start_time' => object(DateTime) {
date => '2019-07-11 15:00:00.000000'
timezone_type => (int) 3
timezone => 'UTC'
},
'end_time' => object(DateTime) {
date => '2019-07-11 16:00:00.000000'
timezone_type => (int) 3
timezone => 'UTC'
}
]
Я настроил свой загрузчик так:
Time::setToStringFormat('d.m.Y H:i');
Time::setJsonEncodeFormat('d.m.Y H:i');
FrozenTime::setToStringFormat('d.m.Y H:i');
FrozenTime::setJsonEncodeFormat('d.m.Y H:i');
Date::setToStringFormat('d.m.Y');
Date::setJsonEncodeFormat('d.m.Y');
FrozenDate::setToStringFormat('d.m.Y');
FrozenDate::setJsonEncodeFormat('d.m.Y');
Type::build('time')
->useImmutable();
Type::build('date')
->useImmutable();
Type::build('datetime')
// ->useImmutable()
->useLocaleParser()
->setLocaleFormat('d.m.Y H:i:ss');
Может кто-нибудь помочь мнеВот?Я немного смущен ...