Cakephp 3在frozentime对象中给出日期和时间字段

时间:2016-10-11 05:13:23

标签: php mysql cakephp cakephp-3.0 cakephp-3.2

我正在使用cakephp 3.2,当我通过查询查询检索数据时,它会以这种格式提供日期字段

Array
(
[0] => Cake\I18n\FrozenDate Object
    (
        [date] => 2016-08-01 00:00:00
        [timezone_type] => 3
        [timezone] => UTC
    )
)

和冻结时间字段

Cake\I18n\FrozenTime Object
(
 [date] => 2016-10-11 10:00:00
 [timezone_type] => 3
 [timezone] => UTC
)

我需要一个完整网站的通用设置或全局解决方案。因此,当我通过从数据库中查找查询来获取数据时,它应该以简单的格式给出日期时间,而不会有任何冻结对象。

像这样

Array(
 [0] => 2016-08-01
)

4 个答案:

答案 0 :(得分:2)

您还可以使用 TimeHelper 查看

中格式化日期时间

示例

echo $this->Time->format(
  $YourDateTimeVariable, #Your datetime variable
  'Y-MM-d'               #Your custom datetime format
);

CakePHP TimeHelper功能详情为Here

答案 1 :(得分:1)

在boostrap.php中添加

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

仍然带有相同参数的forzenDate对象但是当你在视图中打印时它将打印出正确的格式

echo $var->created;
// print: 2016-08-01

答案 2 :(得分:0)

只需在->format('Y-m-d')对象上调用Cake\I18n\FrozenDate

不需要Cake\I18n\FrozenDate::setToStringFormat()$this->Time->format()

答案 3 :(得分:0)

您可以使用内置的 i18nFormat 函数直接以任何自定义日期格式打印日期对象。

$frozenDateObj->i18nFormat('dd-MMM-yyyy');

使用 datetime-syntax 参考进行更多自定义