爆炸任务时间

时间:2012-10-05 21:12:19

标签: php explode

我对DB的一个csv导入有一个字段值,看起来像'24h 30m'

如何将这个分开两组数字?这是我到目前为止所拥有的

$tasktime  = "24h 30m";
$pieces = explode("h ", $tasktime);
echo $pieces[0]; // want this to echo 24
echo $pieces[1]; // want this to echo 30

5 个答案:

答案 0 :(得分:6)

简单易行(demo

$pieces = array_map('intval', explode(' ', "24h 30m"));

这将按空格分割字符串,然后从两个元素中的每一个中获取整数值。

进一步参考:

答案 1 :(得分:1)

$tasktime  = "24h 30m";
$pieces = explode("h ", $tasktime);
$pieces[1] = rtrim($pieces[1], "m");
echo $pieces[0]; // want this to echo 24
echo $pieces[1]; // want this to echo 30

我实际上不知道php,但这对我来说很有意义。

答案 2 :(得分:0)

这很有用。谢谢!

$tasktime  = "24h 30m";
$pieces = array_map('intval', explode(' ', $tasktime));

答案 3 :(得分:0)

如果它始终采用该格式,则可以执行此操作以获取DateInterval对象。

$tasktime  = "24h 30m";    
$interval = new DateInterval('PT' . strtoupper(str_replace(' ', '', $tasktime)));

print_r($interval);

输出

DateInterval Object
    (
        [y] => 0
        [m] => 0
        [d] => 0
        [h] => 24
        [i] => 30
        [s] => 0
        [invert] => 0
        [days] =>
    )

答案 4 :(得分:0)

以下是将其编写为正则表达式的方法:

$tasktime = "24h 30m";
preg_match('/(\d+)h (\d+)m/', $tasktime, $pieces);
echo $pieces[1]; // echoes 24
echo $pieces[2]; // echoes 30