Je souhaite obtenir uniquement la date du début à l'aide de la fonction PHP & Cakephp.
$date = "2011-07-26 20:05:00";
$hours = ?
Par heures, je suppose que vous voulez dire si l'heure est 20 heures ou 20:00 comme dans votre chaîne horaire alors ...
$date = "2011-07-26 20:05:00";
$date = strtotime($date);
echo date('H', $date);
Je ne connais pas très bien les formats de date de PHP, vous devrez donc consulter PHP.net pour trouver le caractère de formatage approprié.
Utilisez la classe Datetime
(PHP 5.3 ou supérieur).
$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2011-07-26 20:05:00");
$hours = $dt->format('H'); // '20'
Du côté php, vous utilisez date('H',strtotime($date));
et côté mysql, vous pouvez utiliser DATE_FORMATE(NOW(),'%H')
pour obtenir seulement une heure
$date
contient une date comme le format '2014/08/14'
Pour convertir une date comme "2014/08/14" en "14-08-2014", vous devez utiliser
date('d-m-Y',strtotime($date));
Ou utiliser
date('d-m-Y',strtotime(str_replace('/','-',$date)))
Pour les formats 24 heures et 12 heures, veuillez vérifier le code ci-dessous:
$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
Pour référence s'il vous plaît vérifier: http://php.net/manual/en/function.date.php
$pattern = '[0-9]{2}:[0-9]{2}';
preg_match('/'.$pattern.'/', '2011-07-26 20:05:00', $matches);
echo $matches[0];
Meilleure façon d'utiliser 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');