1 - 如果任何用户在输入字段中输入1w2d。
2 - 此输入字段中的值应转换为总小时数。
之后我必须在数据库中插入这些总时数。
4当我从数据库中获取总小时数时,它应返回1w2d。
可能的表示法是有一个输入字段命名为估计时间,用户可以输入1w2d或1W2D。这应该转换为总小时数。之后我必须将其发送到数据库。
*我感到无助。我不知道该怎么做。我知道如何转换周 几小时但不知道如何将1w2d转换成小时。
答案 0 :(得分:1)
<?php
function convertWDHtoHours($data) {
preg_match_all('/(\d+[wW]+|\d+[dD]+|\d+[hH]+)/', $data, $matches);
$hours = 0;
foreach($matches[0] AS $match) {
switch(true) {
case preg_match('/\d+[hH]+/', $match) :
$hours += (int)$match;
break;
case preg_match('/\d+[dD]+/', $match) :
$hours += (int)$match*24;
break;
case preg_match('/\d+[wW]+/', $match) :
$hours += (int)$match*24*7;
break;
}
}
return $hours;
}
print "23h => ".convertWDHtoHours('23h')."<br/>";
print "20d => ".convertWDHtoHours('20d')."<br/>";
print "2W => ".convertWDHtoHours('2W')."<br/>";
print "1D2h => ".convertWDHtoHours('1D2h')."<br/>";
print "1w2H => ".convertWDHtoHours('1w2H')."<br/>";
print "1w2d => ".convertWDHtoHours('1w2d')."<br/>";
?>
结果如下: