Я хочу получить только часы с даты с помощью функции PHP и Cakephp.
$date = "2011-07-26 20:05:00";
$hours = ?
Я хочу получить только часы с даты с помощью функции 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("Y-m-d 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('d-m-Y',strtotime($date));
ИЛИ использовать
date('d-m-Y',strtotime(str_replace('/','-',$date)))
Лучший способ использования 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');
Для 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