установив propel по умолчанию в формат даты getDate ("Ymd"), чтобы лучше работать с zend toArray () - PullRequest
4 голосов
/ 23 февраля 2011

Мой запрос возвращает объект с полем даты

$obj = ObjectQuery::create()->findPK(11);
  • var_dump($obj) показывает мне поле даты как yyyy-mm-dd, как в базе данных
  • $obj->getThedate(); меняет формат на mm/dd/yy, чего я не хочу делать
  • $obj->getThedate("Y-m-d"); дает мне тот же формат в базе данных yyyy-mm-dd

Таким образом, чтобы получить данныев том же формате, который хранится в базе данных, мне нужно установить формат, когда я получаю это конкретное поле даты, например третью строку.

Проблема в том, что я не читаю поле даты отдельно.Я беру полный $ obj в целом и превращаю его в массив, используя Zend toArray(), поэтому у меня нет контроля над тем, как toArray() читает поле даты.Есть ли способ установить Propel для доставки в формате ("Y-m-d") по умолчанию?Что-то может быть в настройках prople config?

1 Ответ

9 голосов
/ 23 февраля 2011

Формат по умолчанию, который Propel использует для временных столбцов, можно настроить с помощью трех параметров конфигурации сборки :

propel.defaultTimeStampFormat = {Y-m-d H:i:s}|string
propel.defaultTimeFormat = {%X}|string
propel.defaultDateFormat = {%x}|string

Как видите, формат дат по умолчанию - %x, что составляет предпочтительное представление даты в зависимости от вашей локали . Вы должны изменить его на %Y-%m-%d или сокращение %F.

...