默认情况下将 propel 设置为日期格式 getDate(“Ymd”),以便更好地与 zend toArray() 配合使用

发布于 2024-10-19 03:50:33 字数 604 浏览 3 评论 0原文

我的查询返回一个具有日期字段

$obj = ObjectQuery::create()->findPK(11);
  • var_dump($obj) 的对象,将日期字段显示为 yyyy-mm-dd,就像在数据库中一样
  • $ obj->getThedate(); 将格式更改为 mm/dd/yy 我不希望发生这种情况
  • $obj->getThedate("Ymd") ; 在数据库中为我提供相同的格式 yyyy-mm-dd

因此,为了以与数据库中存储的相同格式获取数据,我需要在获取时设置格式特定的日期字段,例如第三行。

问题是我没有单独读取日期字段。我将完整的 $obj 作为一个整体,并使用 Zend 的 toArray() 将其转换为数组,因此我无法控制 toArray() 的读取方式日期字段。有没有办法将 Propel 设置为默认格式 ("Ymd") 传送?可能在正确的配置设置中?

My query returns an object that has a date field

$obj = ObjectQuery::create()->findPK(11);
  • var_dump($obj) shows me the date field as yyyy-mm-dd like it is in the database
  • $obj->getThedate(); changes the format to mm/dd/yy which I don't want to happen
  • $obj->getThedate("Y-m-d"); gives me same format in the database yyyy-mm-dd

So to get the data in the same format it's stored in the database, I need to set the format when I'm getting that specific date field, like the third line.

The problem is that I'm not reading the date field separately. I'm taking the full $obj as a whole and turning it into an array using Zend's toArray(), so I don't have control over how toArray() reads the date field. Is there a way to set Propel to deliver in the format ("Y-m-d") as a default? Something maybe in the prople config settings?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

jJeQQOZ5 2024-10-26 03:50:33

Propel 用于时间列的默认格式可以通过三个构建配置参数进行配置:

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

如您所见,默认日期格式为 %x,这是基于您的区域设置的首选日期表示形式。您应该将其更改为 %Y-%m-%d 或简写 %F

The default format Propel uses for temporal columns can be configured by three build configuration parameters:

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

As you can see, the default format for dates is %x, which is the preferred date representation based on your locale. You should change it to %Y-%m-%d or the shorthand %F.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文