我的一个 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
非常简单(演示)
$pieces = array_map('intval', explode(' ', "24h 30m"));
这将按空格分割字符串,然后从两个元素中的每一个中获取整数值。
进一步参考:
$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,但这对我来说很有意义。
这行得通。谢谢!
$tasktime = "24h 30m";
$pieces = array_map('intval', explode(' ', $tasktime));
如果它总是这种格式,你可以这样做来获取一个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] =>
)
以下是您可以如何将其编写为正则表达式:
$tasktime = "24h 30m";
preg_match('/(\d+)h (\d+)m/', $tasktime, $pieces);
echo $pieces[1]; // echoes 24
echo $pieces[2]; // echoes 30