在laravel 4.2中将小时数转换为星期,天,小时

时间:2015-08-08 11:15:15

标签: php regex laravel laravel-4 preg-match-all

  1. 用户在输入字段中输入了2w2d2h
  2. 在数据库中显示386
  3. 2w=2*24*7
  4. 2d-2*24
  5. 2h=2
  6. 添加以上三个值后,它变为386
  7. 现在我从数据库获取386时应显示2w2d2h
  8. 请帮帮我

    直到现在我已经在转换后插入了值。

    preg_match_all('#(\d[wW]+|\d[dD]+|\d[hH]+|\s+)#i', $category, $matches);
    $hours = 0;
    $days = 0;
    $hoursss = 0;
    foreach ($matches[0] AS $match) {
        switch(true) {
        case preg_match('/\d[hH]+|\s+/', $match):
            $hours += (int)$match;
            break;
    
        case preg_match('/\d[dD]+|\s+/', $match):
            $days += (int)$match * 24;
            break;
    
        case preg_match('/\d[wW]+|s+/', $match):
            $hoursss += (int)$match * 24 * 7;
            break;
        }
        $case = $hours + $hoursss + $days;
    }
    

1 个答案:

答案 0 :(得分:2)

以下代码会将小时数转换为您需要的表达式:

$hours = 386;
$weeks = floor($hours / (24*7));
$hours -= $weeks * 24 * 7;
$days = floor($hours / 24);
$hours -= $days * 24;

printf("%dw%dd%dh", $weeks, $days, $hours);