Symfony / Propel - 从数据库中检索旧日期

时间:2010-09-09 21:11:01

标签: php mysql symfony1 propel

这是关于Symfony 1.4,可能是所有以前的版本,运行php 5.3,mysql 5.1。

如果我将旧日期存储在数据库中< 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

输出格式在哪里受到控制?我需要将整个年份的整个日期存储在数据库中。

1 个答案:

答案 0 :(得分:4)

日期字段获取者使用$format参数,使用该参数,例如$record->getSomeDate("Y-m-d");

此外,这是docblock关于日期访问者的说法:

  

此访问器仅适用于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.