Часовой пояс не меняется в перенаправленной функции - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть это PHP-приложение symfony4.3 (последнее), и я пытаюсь вставить в базу данных, используя Doctrine ORM, и мне нужно вставить время, когда этот запрос произошел, но мне нужен определенный часовой пояс, и часовой пояс не меняется с помощьюлибо date_default_timezone_set () или setTimeZone ()

$entityManager = $this->getDoctrine()->getManager();
date_default_timezone_set("America/Bahia");
$customer = new Customer();
$customer->setName($name);
$customer->setPhone($phone);
$dt = new \DateTimeImmutable(date('m/d/y G:i:s'));
$tz = new \DateTimeZone("America/Bahia");
$dt->setTimezone($tz);
$customer->setCreated($dt);

Я ожидаю, что часовой пояс в созданной ячейке будет изменен на Америку / Баия

Фактический результат: Европа / Хельсинки, который является часовым поясомсервер

1 Ответ

0 голосов
/ 12 апреля 2019

Получается, что он правильно менял часовой пояс и сохранял правильное значение в базе данных, Но проблема заключалась в том, что каждый раз, когда вы пытаетесь получить доступ к часовому поясу из объекта datetime после получения его из базы данных, он будет показывать только часовой пояс файла php.ini или чего-то еще, а не часовой пояс, который вы фактически использовали для хранения даты и времени !. Я думаю, что если нам действительно нужен точный часовой пояс, используемый при вставке или обновлении, нам нужно сохранить его в другом столбце.

...