如何在laravel 4.2中将周日转换为小时?

时间:2015-08-07 09:50:04

标签: php laravel laravel-4 laravel-5 php-carbon

1 - 如果任何用户在输入字段中输入1w2d。

2 - 此输入字段中的值应转换为总小时数。

之后我必须在数据库中插入这些总时数。

4当我从数据库中获取总小时数时,它应返回1w2d。

可能的表示法是有一个输入字段命名为估计时间,用户可以输入1w2d或1W2D。这应该转换为总小时数。之后我必须将其发送到数据库。

*我感到无助。我不知道该怎么做。我知道如何转换周 几小时但不知道如何将1w2d转换成小时。

1 个答案:

答案 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/>";

?>

结果如下:

http://codepad.viper-7.com/Ioj02x