Cakephp 3.2更改默认日期格式
我尝试将CakePHP 3.2的默认日期格式从dd.mm.YYYY
设置为YYYY-mm-dd
,因此我将不必使用$MyDatas->mydate->format('Y-m-d')
,并且在编辑数据时我将使用格式更重要的日期格式dd.mm.YYYY
(前27.02.2016)。我需要YYYY-mm-dd
(2016-02-27)。Cakephp 3.2更改默认日期格式
我寻找解决方案和无显示器的任何改变(在形式或作为视图的一部分:$MyDatas->mydate
):上述
// in AppController
ini_set('intl.default_locale', 'pl_PL');
//and/or
use Cake\Database\Type;
Type::build('datetime')->useLocaleParser()->setLocaleFormat('YYYY-mm-dd');
//and/or
use Cake\I18n\I18n;
I18n::locale('pl_PL');
//and/or
use Cake\I18n\Time;
Time::$defaultLocale = 'pl-PL'; //and or
Time::setToStringFormat('YYYY-mm-dd HH:mm');//and or
Type::build('datetime')->useLocaleParser(false);//and or
的代码无帮助。有谁知道如何改变日期格式?
我想你已经升级到3.2 CakePHP的,否则你会看到在你的文件,有独立的类型DATE
,DATETIME
和TIME
类型列。
使用CakePHP 3.2 date
类型不MAPE到Cake\I18n\Time
了,但到\Cake\I18n\Date
(或\Cake\I18n\FrozenDate
当指示使用不可变对象),并且它需要被分开地构造,这是为什么改变datetime
类型或\Cake\I18n\Time
class config不会影响您的DATE
列。
要配置后者的格式,请使用\Cake\I18n\Date
和/或\Cake\I18n\FrozenDate
类和date
类型。在你的引导,你可以不喜欢
ini_set('intl.default_locale', 'pl_PL');
// ...
Cake\I18n\Date::setToStringFormat('yyyy-MM-dd');
Cake\I18n\FrozenDate::setToStringFormat('yyyy-MM-dd');
\Cake\Database\Type::build('date')
->useImmutable()
->useLocaleParser()
->setLocaleFormat('yyyy-MM-dd');
这将覆盖使用pl_PL
区域时被应用的默认值。请注意,您应该使用yyyy
而不是YYYY
(因为后者定义了week-numbering year)和MM
而不是mm
(因为后者定义了分钟)。
请参阅http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details了解CakePHP内部使用的intl格式化程序使用的格式。
另请注意,还有\Cake\I18n\Date::$wordFormat
和\Cake\I18n\Date:$niceFormat
,您可能也想更改它。
又见
在这个文件config/site.php
这个代码粘贴:
return [
'Site' => [
'CakeDateFormat' => 'Y-M-d',
'DatePickerFormat' => 'mm/dd/yyyy',
'CakeDateFormatForView' => 'm/d/Y',
]
]
使用此日期格式控制器:
use Cake\I18n\Time;
$this->request->data['date'] =Time::parseDate($this->request->data['date'], Configure::read('Site.CakeDateFormat'));
设置根据日期格式你的n请参阅CakeDateFormat
。
经过大量搜索我发现。
在配置/ app.php下 '应用'=> []
变化
'defaultLocale' => env('APP_DEFAULT_LOCALE', 'us_US'),
到
'defaultLocale' => env('APP_DEFAULT_LOCALE', 'pl_PL'),
和所有的日期将变更为您的格式。 因为 配置/ boostrap.php 它在蛋糕阅读
ini_set('intl.default_locale', Configure::read('App.defaultLocale'));
末\的I18n FrozenDate将其设置为
protected static $_toStringFormat = [IntlDateFormatter::SHORT, -1];
是类型DATE',或'DATETIME'的'具体列?我有MySQL的 – ndm
:date_start(日期),date_end(日期)。对于DB中的行where date_start ='2016-02-27'cake will display 27.02.2016 – MasterAbe