2014-10-25 2 views
8

CakePHP 3: У меня есть поле базы данных, которая является DATE (не DATETIME ни TIMESTAMP)CakePHP 3 отображения даты без времени

Когда я показываю

echo $contact->date; 

Он покажет что-то вроде 2014. 01 06. 0:00. Как скрыть часы и минуты?

Я попытался

print $this->Time->format($contact->date, 'Y-m-d'); 

, но я получил 2014-0-6

Как получить год-месяц-день?

rrd

ответ

17

Вы пробовали это?

echo $contact->date->format('Y-m-d'); 
+2

На самом деле это отвечает на вопрос. Это правильное решение. – rrd

+2

Для справки: ** [TimeHelper] (http://book.cakephp.org/3.0/ru/views/helpers/time.html) ** | ** [Время] (http://book.cakephp.org/3.0/en/core-libraries/time.html) ** – ndm

+0

Вы можете использовать echo $ contact-> date-> toFormattedDateString() – steinkel

-1

попробовать

дату ('Y-M-D', StrToTime дате ($ контактно>));

5

добавить в App \ Controller:

use Cake\I18n\Time; 
Time::$defaultLocale = 'es-ES'; 
Time::setToStringFormat('YYYY-MM-dd'); 
+1

Если вы Не хотите переопределять значения по умолчанию и использовать локализованное форматирование, вы можете использовать что-то вроде '$ this-> Time-> i18nFormat ($ contact-> date, [IntlDateFormatter :: SHORT, IntlDateFormatter :: NONE])' или другое форматирование опции из [PHP IntlDateFormatter class] (http://php.net/manual/en/class.intldateformatter.php) – kari

0

Если нужно весь проект с конкретным форматом, вы можете использовать
boostrap.php

Cake\I18n\FrozenDate::setToStringFormat('yyyy-MM-dd'); 
Смежные вопросы