CakePHP在列表输入中更改格式

时间:2016-04-07 21:42:21

标签: php cakephp cakephp-3.x

我从控制器发送此查询:

$tareas = $this->Tests->Tareas->find('list', [
            'limit' => 200, 
            'keyField' => 'id', 
            'valueField' => 'Fecha'
        ]);

valueField'Fecha'是我数据库中的日期。

到目前为止一直很好,但在视图中这个日期字段以'M-d-Y'格式显示,我想要'dd-MM-yyyy'格式。

问题是我使用输入显示日期列表,我不知道要更改格式。

我的观点有:

echo $this->Form->input('tarea_id', [
                'options' => $tareas,
            ]);

如何在$ tareas中更改此日期格式? 我试着用:

Cake\I18n\I18n::locale('es-ES');

但这只是一个月的锯齿状订单。

非常感谢你。

3 个答案:

答案 0 :(得分:1)

经过多次阅读和练习,我找到了部分解决方案。我想仅在该对象中更改日期格式。但这个解决方案目前还不错。

我更改为文件 config / bootstrap.php

的配置

在此档案的位置:

ini_set('intl.default_locale', Configure::read('App.defaultLocale'));

更改为:

ini_set('intl.default_locale', 'es_ES');
Cake\I18n\Date::setToStringFormat('dd-MM-YYYY');
Cake\I18n\FrozenDate::setToStringFormat('dd-MM-YYYY');
Cake\Database\Type::build('date')
    ->useImmutable()
    ->useLocaleParser()
    ->setLocaleFormat('dd-MM-YYYY');

这将使用指定的格式重新格式化所有网站日期。

如果有其他解决方案,将不胜感激,

感谢所有人阅读我。

答案 1 :(得分:1)

我假设你使用Cakephp 3.0

我找到了更好的解决方案,请转到 config / app.php 文件。

寻找;

'App' => [
        'namespace' => 'App',
        'encoding' => env('APP_ENCODING', 'UTF-8'),
        'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
        'base' => false,

编辑适合您当地的行;

对于爱尔兰来说;

'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_IE'),

西班牙;

'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_ES'),

答案 2 :(得分:1)

您可以在模型/实体/中创建实体,例如您的模型名称是用户,因此您可以创建下面的实体

<强> user.php的

namespace App\Model\Entity;

use Cake\ORM\Entity;

class User extends Entity {

       protected function _getList() {
          return date("Y-m-d",strtotime($this->_properties['Fecha']));
       }

}

现在你可以使用

$tareas = $this->Tests->Tareas->find('list', [
            'limit' => 200, 
            'keyField' => 'id', 
            'valueField' => function ($e) {
                        return $e->get('list');
                    }
        ]);

了解更多信息 http://book.cakephp.org/3.0/en/orm/retrieving-data-and-resultsets.html#finding-key-value-pairs