Вопрос:
Я хочу получить только часы с даты с помощью функции 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 для правильного символа форматирования.
Ответ №1
Используйте класс Datetime (PHP 5.3 или выше).
$dt = DateTime::createFromFormat(«Y-m-d H:i:s», «2011-07-26 20:05:00»); $hours = $dt->format(‘H’); // ’20’ Ответ №2
На стороне php вы используете date(‘H’,strtotime($date));
и на стороне mysql вы можете использовать DATE_FORMATE(NOW(),’%H’), чтобы получить только час
$date содержит дату, такую как формат “2014/08/14”
Чтобы преобразовать дату, например ‘2014/08/14’, ’14 -08-2014 ‘, вы должны использовать
date(‘d-m-Y’,strtotime($date));
ИЛИ использовать
date(‘d-m-Y’,strtotime(str_replace(‘/’,’-‘,$date))) Ответ №3
Лучший способ использования DateTime class
$my_sql_date = «2011-07-26 20:05:00»; $date_time_obj = new DateTime($my_sql_date); echo $date_time_obj->format(‘H’); Ответ №4
Для 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