Что определяет (как настроить), какую строку формата использует драйвер php PDO для значений полей даты и метки времени? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть база данных Firebird 3.0, в которой есть поля даты и метки времени, и я использую расширение между базами (да - все еще между базами) и фреймворк Yii2 в PHP 7.x. И у меня есть код Yii:

Yii::$app->db->createCommand('select order_date from orders where order_id=5');

, который возвращает поле со значением:

2019-10-15 00:00:00

AFAIU, затем Yii2 использует PDO, и поэтому мой вопрос сводится к вопросу о PDO. PHP имеет расширение DateTime, но AFAIU PDO не использует класс DateTime (а также не использует метки времени Unix - целое число секунд) и вместо этого просто возвращает строку в соответствии с некоторым форматом.

У меня вопрос - какая строка форматаиспользуется слоем PDO для полей даты и времени SQL и как я могу изменить эту строку формата? Я хотел бы быть уверен, что возвращаемая дата или отметка времени находятся в указанном формате, из которого я могу создать экземпляр DateTime и манипулировать этим экземпляром в дальнейшем. Например, у Firebird 3.0 пока нет часовых поясов, и поэтому я хотел бы вызвать $dateTimeInstance->setTimezone(...), чтобы полностью указать часть часового пояса экземпляра, а затем я могу безопасно вывести значение в формате const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO", который является общепринятым форматом даты и времени для JSON>

...