两个日期之间的碳差异以获得小数点以进行小时费率计算

jdc*_*arg 5 php diff date php-carbon laravel-5

我正在使用Carbon计算两个日期之间的时间。我希望能够取两个日期之间的时差,并以十进制格式确定时间,以便能够计算小时费率。根据我的测试,-> diffInHours()调用给了我两个数字之间的小时数。

例如

$actual_start_at = Carbon::parse('2017-05-01 13:00:00');
$actual_end_at = Carbon::parse('2017-05-01 15:15:00');
return $actual_end_at->diffInHours($actual_start_at, true);
Run Code Online (Sandbox Code Playgroud)

退货

2
Run Code Online (Sandbox Code Playgroud)

我想要一些可以返回的东西 2 hours 15 minutes

2.25
Run Code Online (Sandbox Code Playgroud)

Moz*_*mil 12

不幸的是,diffInHours只取两个参数。也许,您可以尝试一下diffInMinutes,然后从那里获得所需的价值?

例如

$actual_start_at = Carbon::parse('2017-05-01 13:00:00');
$actual_end_at   = Carbon::parse('2017-05-01 15:15:00');
$mins            = $actual_end_at->diffInMinutes($actual_start_at, true);

dd($mins/60);
Run Code Online (Sandbox Code Playgroud)

会输出

2.25
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用该diff()方法,它将返回一个DateInterval对象。

$mins = $actual_end_at->diff($actual_start_at, true);
Run Code Online (Sandbox Code Playgroud)

然后dd($mins)会输出:

DateInterval {#913 ?
  +"y": 0
  +"m": 0
  +"d": 0
  +"h": 2
  +"i": 15
  +"s": 0
  +"f": 0.0
  +"weekday": 0
  +"weekday_behavior": 0
  +"first_last_day_of": 0
  +"invert": 0
  +"days": 0
  +"special_type": 0
  +"special_amount": 0
  +"have_weekday_relative": 0
  +"have_special_relative": 0
}
Run Code Online (Sandbox Code Playgroud)