【问题标题】:CakePHP 3 Date format IssueCakePHP 3 日期格式问题
【发布时间】:2018-12-12 12:54:30
【问题描述】:

我到处研究,但找不到解决方案,
在数据库中,我使用from_date 字段作为date(2018-07-07) 类型 但是当我找到数据时,它会自动将 from_date 转换为 'Cake\I18n\Date Object'

[from_date] => Cake\I18n\Date Object
        (
            [time] => 2018-07-07T00:00:00+00:00
            [timezone] => UTC
            [fixedNowTime] => 
        )

我这是什么

[from_date] => '2018-07-07'

我知道我们可以通过

$obj->from_date->format('Y-M-D');

但数据来自 10000 个循环的数组,这不是在循环中转换的好主意。 我也在 bootstrap.php 中试过这个

Type::build('date')->useLocaleParser()->setLocaleFormat('y-m-d');

但这也行不通。

请帮忙

【问题讨论】:

  • 方法有很多,但是你想格式化日期的原因是什么?
  • 我正在将其转换为 JSON 格式,并且这种格式会在 javascript 中产生问题。 JSON格式,显示2018-07-07T00:00:00+00:00

标签: date cakephp-3.2


【解决方案1】:

在您的bootstrap.php 中,您可以在将DateFrozenDate 转换为Json 中的字符串时设置所需的默认格式

参见手册here 和api here

请注意,您必须使用here 描述的字符串模式,而不是您通常与date() 一起使用的模式

所以你的代码应该是

\Cake\I18n\FrozenDate::setJsonEncodeFormat('yyyy-MM-dd'); 
\Cake\I18n\Date::setJsonEncodeFormat('yyyy-MM-dd'); 

【讨论】:

  • 您可能希望将其应用于\Cake\I18n\Date/\Cake\I18n\FrozenDate。也可以使用yyyy,因为YYYY 代表周编号年份,并不总是与日历年相同。
  • 我试过这个 \Cake\I18n\Date::setJsonEncodeFormat('yyyy-MM-dd');现在工作,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 2014-04-01
相关资源
最近更新 更多