将 propel 默认设置为日期格式 getDate("Y-m-d"),以便更好地与 zend toArray() 配合使用

Posted

技术标签:

【中文标题】将 propel 默认设置为日期格式 getDate("Y-m-d"),以便更好地与 zend toArray() 配合使用【英文标题】:setting propel by default to date format getDate("Y-m-d"), to work better with zend toArray() 【发布时间】:2011-02-23 01:30:59 【问题描述】:

我的查询返回一个包含日期字段的对象

$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 配置设置中有什么东西?

【问题讨论】:

【参考方案1】:

Propel 用于时间列的默认格式可以由three build configuration parameters 配置:

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

如您所见,日期的默认格式是%x,即the preferred date representation based on your locale。您应该将其更改为 %Y-%m-%d 或简写 %F

【讨论】:

感谢 Jan,感谢您的帮助。

以上是关于将 propel 默认设置为日期格式 getDate("Y-m-d"),以便更好地与 zend toArray() 配合使用的主要内容,如果未能解决你的问题,请参考以下文章

求助:sqlserver数据库中的日期格式怎么转换

sqlserver里如何将一个日期值格式化输出为YYYY年MM月DD日的格式

Datepicker 将今天的日期设置为默认值

sql日期格式转换

如何用sql实现自动填充日期

如何用SQL语句将数据库中的表的某一时间型字段的默认值设置为当前日期