CakePHP3でViewを使わない時にCreatedやModifiedのフォーマットを変更する方法

Viewファイルで、

1
<?= $post->created->format('Y-m-d') ?>

こうすると、フォーマットを指定のものに変更することができます。 というサンプルはよく有ります。

しかし、Viewを使用しない(例えば、結果がJSONで返ってくるAPIアプリケーション)場合などはEntityを使って実装してあげればいいかと思います。

Entity/Post.php
1
2
3
4
5
6
7
8
9
protected function _getCreated(\Datetime $created)
{
  return $created->i18nFormat('YYYY/MM/dd HH:mm:ss');
}

protected function _getModified(\Datetime $modified)
{
  return $modified->i18nFormat('YYYY/MM/dd HH:mm:ss');
}

Entity側で変更することで他のViewで変更し漏れがなくなるので、Viewを使う場合でもEntity側で変えちゃう方がいいと思います。