Я хочу получить только часы с даты, используя функцию PHP & Cakephp.
$date = "2011-07-26 20:05:00"; $hours = ?
По часам я предполагаю, что вы имеете в виду, если время 8 вечера или 20:00 часов, как в вашей временной строке, тогда …
$date = "2011-07-26 20:05:00"; $date = strtotime($date); echo date('H', $date);
Я не знаком с форматами дат PHP, поэтому вам нужно будет ссылаться на PHP.net для правильного символа форматирования.
Используйте класс Datetime
(PHP 5.3 или выше).
$dt = DateTime::createFromFormat("Ymd H:i:s", "2011-07-26 20:05:00"); $hours = $dt->format('H'); // '20'
На стороне php вы используете date('H',strtotime($date));
и на стороне mysql вы можете использовать DATE_FORMATE(NOW(),'%H')
чтобы получить только час
$date
содержит дату, такую как формат «2014/08/14»
Чтобы конвертировать дату типа «2014/08/14» в «14 -08-2014», вам необходимо использовать
date('dm-Y',strtotime($date));
ИЛИ использовать
date('dm-Y',strtotime(str_replace('/','-',$date)))
Лучший способ использования класса DateTime
$my_sql_date = "2011-07-26 20:05:00"; $date_time_obj = new DateTime($my_sql_date); echo $date_time_obj->format('H');
Для 24-часового и 12-часового формата, пожалуйста, проверьте код ниже:
$date = "2011-07-26 20:05:00"; echo $hours = date('G', strtotime($date)); // In 24-hour format of an hour without leading zeros echo '<br>'; echo $hours = date('g', strtotime($date)); // 12-hour format of an hour without leading zeros // For current timestamp echo $hours = date('G'); // In 24-hour format of an hour without leading zeros echo '<br>'; echo $hours = date('g'); //12-hour format of an hour without leading zeros
Для справки, пожалуйста, проверьте: http://php.net/manual/en/function.date.php