2010-09-09 7 views
1

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

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

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

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 

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

ответ

4

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

Кроме того, это то, что DocBlock говорит о дате аксессорах:

Это сбруя только работает только с Unix дат эпохи. Рассмотрим построение с propel.useDateTimeClass или изменить тип столбца в (устаревшее) «перед-Юникс» колонного типа (например, 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.