#php #mysql #cakephp #cakephp-3.0 #cakephp-3.2
#php #mysql #cakephp #cakephp-3.0 #cakephp-3.2
Вопрос:
Я использую cakephp 3.2, и когда я извлекаю данные с помощью запроса find, он предоставляет поля даты в этом формате
Array
(
[0] => CakeI18nFrozenDate Object
(
[date] => 2016-08-01 00:00:00
[timezone_type] => 3
[timezone] => UTC
)
)
и поля времени в frozentime
CakeI18nFrozenTime Object
(
[date] => 2016-10-11 10:00:00
[timezone_type] => 3
[timezone] => UTC
)
Мне нужна общая настройка или глобальное решение для всего сайта. Поэтому, когда я извлекаю данные с помощью запроса find из базы данных, он должен предоставить мне дату и время в простом формате без какого-либо объекта frozendate.
вот так
Array(
[0] => 2016-08-01
)
Комментарии:
1. Ни один из ответов на сегодняшний день, похоже, не соответствует запросу OP о том, что «Мне нужна общая настройка или глобальное решение … поэтому, когда я извлекаю данные… это должно дать мне дату и время в простом формате без какого-либо объекта frozendate «. Текущие ответы требуют изменения кода везде, где используется дата.
Ответ №1:
Просто вызовите ->format('Y-m-d')
свой CakeI18nFrozenDate
объект.
Нет необходимости в CakeI18nFrozenDate::setToStringFormat()
или $this->Time->format()
Комментарии:
1. Хотел бы добавить, что
CakeI18nFrozenTime
Datetime::diff()
это также является допустимым аргументом.
Ответ №2:
Вы также можете использовать TimeHelper для форматирования даты и времени в представлении
Пример
echo $this->Time->format(
$YourDateTimeVariable, #Your datetime variable
'Y-MM-d' #Your custom datetime format
);
TimeHelper
Подробная информация о функции CakePHP здесь
Ответ №3:
В boostrap.php добавить
CakeI18nFrozenDate::setToStringFormat('yyyy-MM-dd');
тем не менее, он поставляется с объектом forzenDate с теми же параметрами, но когда вы будете печатать в представлении, он будет печатать правильный формат
echo $var->created; // print: 2016-08-01
Ссылка на даты Синтаксис формата Datetime
Ответ №4:
Вы можете напрямую распечатать объект date в любом пользовательском формате даты, используя встроенную функцию i18nFormat.
$frozenDateObj->i18nFormat('dd-MMM-yyyy');
Используйте ссылку на синтаксис datetime для дополнительной настройки