如何在PHP和Cakephp中从日期中获取小时数?

xmakbtuz  于 2023-02-03  发布在  PHP
关注(0)|答案(8)|浏览(119)

我想通过使用PHP & Cakephp函数只从日期小时。

$date = "2011-07-26 20:05:00";

$hours = ?
aurhwmvo

aurhwmvo1#

使用Datetime类(PHP 5.3或更高版本)。

$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2011-07-26 20:05:00");
$hours = $dt->format('H'); // '20'
kuhbmx9i

kuhbmx9i2#

我假设你所说的小时是指,如果时间是晚上8点或者20:00,就像你的时间字符串中的那样,那么...

$date = "2011-07-26 20:05:00";
$date = strtotime($date);
echo date('H', $date);

我对PHP的日期格式不太熟悉,所以你必须参考PHP.net来获得正确的格式字符。

n3schb8v

n3schb8v3#

在php端使用date('H',strtotime($date));
在mysql端你可以使用DATE_FORMATE(NOW(),'%H')只得到hour
$date包含类似“2014/08/14”格式的日期
要将日期(如“2014/08/14”)转换为“14-08-2014”,您必须使用

date('d-m-Y',strtotime($date));

手术室使用

date('d-m-Y',strtotime(str_replace('/','-',$date)))
fafcakar

fafcakar4#

使用DateTime类的最佳方法

$my_sql_date = "2011-07-26 20:05:00";
$date_time_obj = new DateTime($my_sql_date);
echo $date_time_obj->format('H');
rdlzhqv9

rdlzhqv95#

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

rxztt3cl

rxztt3cl6#

date_parse函数将返回一个日期时间段的已实现数组。请按如下方式使用该函数:

$now = date(now()); // "2021-08-30 21:52:21"
    $open = date_parse($now)['hour']; // 21
wb1gzix0

wb1gzix07#

$pattern = '[0-9]{2}:[0-9]{2}'; preg_match('/'.$pattern.'/', '2011-07-26 20:05:00', $matches); echo $matches[0];

raogr8fs

raogr8fs8#

从CakePHP 4.0+开始,你已经有了FrozenTime实用类,只需要导入它。
在控制器中:

use Cake\I18n\FrozenTime;
        
class ExampleController extends AppController {
    public function getHour() {
        $now = FrozenTime::now();
        $hour = $now->hour;
        $this->set(compact('hour'));
    }
}

那么在你看来:

<?= $hour ?>

它应该输出如下内容(假设现在是下午2:30):

14

相关问题