У меня есть база данных 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>