2

我的一个 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
4

5 回答 5

6

非常简单(演示

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

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

进一步参考:

于 2012-10-05T21:16:45.300 回答
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,但这对我来说很有意义。

于 2012-10-05T21:18:26.480 回答
0

这行得通。谢谢!

$tasktime  = "24h 30m";
$pieces = array_map('intval', explode(' ', $tasktime));
于 2012-10-05T21:18:32.083 回答
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] =>
    )
于 2012-10-05T21:20:12.567 回答
0

以下是您可以如何将其编写为正则表达式:

$tasktime = "24h 30m";
preg_match('/(\d+)h (\d+)m/', $tasktime, $pieces);
echo $pieces[1]; // echoes 24
echo $pieces[2]; // echoes 30
于 2012-10-05T21:40:27.640 回答