我想使用PHP和Cakephp函数从日期中仅获取小时。
$date = "2011-07-26 20:05:00";
$hours = ?
使用 Datetime
类(PHP 5.3 或更高版本)。
$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2011-07-26 20:05:00");
$hours = $dt->format('H'); // '20'
根据“小时”我理解您的意思是,如果时间是晚上8点或者20:00这样,在您的时间字符串中...
$date = "2011-07-26 20:05:00";
$date = strtotime($date);
echo date('H', $date);
我对PHP的日期格式不是很了解,所以您需要参考PHP.net获取正确的格式化字符。
对于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
date_parse
函数将返回一个已填充的日期时间部分数组。使用方法如下: $now = date(now()); // "2021-08-30 21:52:21"
$open = date_parse($now)['hour']; // 21
使用 DateTime 类的最佳方法
$my_sql_date = "2011-07-26 20:05:00";
$date_time_obj = new DateTime($my_sql_date);
echo $date_time_obj->format('H');
date('H',strtotime($date));
,在mysql端可以使用DATE_FORMAT(NOW(),'%H')
来获取小时。
$date
包含的日期格式为'2014/08/14'。date('d-m-Y',strtotime($date));
OR use
date('d-m-Y',strtotime(str_replace('/','-',$date)))
$pattern = '[0-9]{2}:[0-9]{2}';
preg_match('/'.$pattern.'/', '2011-07-26 20:05:00', $matches);
echo $matches[0];
use Cake\I18n\FrozenTime;
class ExampleController extends AppController {
public function getHour() {
$now = FrozenTime::now();
$hour = $now->hour;
$this->set(compact('hour'));
}
}
然后在你的视图中:
<?= $hour ?>
14