Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中分解不同部分的时间?_Php - Fatal编程技术网

如何在php中分解不同部分的时间?

如何在php中分解不同部分的时间?,php,Php,我想把一段时间分解成两部分,我的意思是,我想把左边和右边分开,就像右边的一条线 22:02:00 23:00:00 23:12:00 想象一下这些数字,不管有没有秒,我们都可以踢它们 22:02 23:00 23:12 现在,我要分开计算时间和分钟。我们怎么能做到呢 最简单的方法是删去字符串的前5个字符: $time = '22:02:00'; echo substr($time, 0, 5); // 22:02 您还可以使用DateTime类解析时间: $time = '22:02:00';

我想把一段时间分解成两部分,我的意思是,我想把左边和右边分开,就像右边的一条线

22:02:00

23:00:00

23:12:00

想象一下这些数字,不管有没有秒,我们都可以踢它们

22:02

23:00

23:12


现在,我要分开计算时间和分钟。我们怎么能做到呢

最简单的方法是删去字符串的前5个字符:

$time = '22:02:00';
echo substr($time, 0, 5); // 22:02
您还可以使用
DateTime
类解析时间:

$time = '22:02:00';
$parsed = DateTime::createFromFormat('H:i:s', $time);
echo $parsed->format('H:i');
正如Mark Baker所评论的,也可以使用:

$time = '22:02:00';
$parsed = strptime($time, '%H:%M');
echo str_pad($parsed['tm_hour'], 2, '0', STR_PAD_LEFT) . ':' . str_pad($parsed['tm_min'], 2, '0', STR_PAD_LEFT);
正则表达式也可以工作:

$time = '22:02:00';
preg_match('/^(?P<hour>\d{2}):(?P<minute>\d{2})/', $time, $result);
if (count($result) > 0) {
    echo "{$result['hour']}:{$result['minute']}";
}
$time='22:02:00';
preg_match('/^(?P\d{2}):(?P\d{2})/',$time,$result);
如果(计数($result)>0){
回显“{$result['hour']}:{$result['minute']}”;
}