Symfony / Propel - получение старых дат из базы данных - PullRequest
1 голос
/ 10 сентября 2010

Это касается Symfony 1.4 и, возможно, всех предыдущих версий, работающих под управлением php 5.3, mysql 5.1.

Если я сохраняю старые даты в базе данных <1970 ..., а затем извлекаю их,автоматически преобразуется в неверную дату. </p>

Пример таблицы:

id, some_date
1, 1961-09-09

Быстрый пример.

$record = MyTablePeer::retrieveByPK(1);
echo $record->getSomeDate(); 
//returns: 09/09/61
//Want it to return: 1961-09-09

Откуда управляется формат вывода?Мне нужно получить всю дату с целым годом, хранящимся в базе данных.

1 Ответ

4 голосов
/ 10 сентября 2010

Получатели поля даты имеют параметр $format, используйте его, например, $record->getSomeDate("Y-m-d");.

Кроме того, вот что говорит доклок о методах доступа к дате:

Этот метод доступаработать только с датами эпохи Unix.Рассмотрите возможность создания с propel.useDateTimeClass или измените этот тип столбца на (устаревший) тип столбца «before-unix» (например, BU_TIMESTAMP или BU_DATE), если вам нужно поддерживать даты до / после эпохи.

@param      string $format The date/time format string (either date()-style or strftime()-style).
             If format is NULL, then the integer unix timestamp will be returned. 
@return     mixed Formatted date/time value as string or (integer) unix timestamp (if format is NULL).

@throws     PropelException - if unable to convert the date/time to timestamp.
...