我在计算两个日期的差别。我想用日期来加/减一个数字/十进制值。
Example:
Start = 2022-06-28
end = 2022-06-29
total= (start - 0.5) - ( end - 0)
= 1.5
or
total= (start - 0) - ( end - 0)
= 2
or
total= (start - 0.5) - ( end - 0.5)
= 1代码:
$second_half = $request->session_1; // value = 0.5
$first_half = $request->session_2; // value = 0.5
$start = Carbon::parse($request->start_date); // value (YYYY-MM-DD) = 2022-06-28
$end = Carbon::parse($request->end_date); // value (YYYY-MM-DD) = 2022-06-29
$total_days = $end->diff($start); // this result can be decimal like 1.5实际上,我想把一整天分成两部分。上半场和下半场。所以,当我计算两个日期之间的差异时,它应该在(上半+下半)之前计算一整天。如果我选择2022-06-28上半年和2022-06-29下半年,它将计算2天。如果我选择2022-06-28上半年和2022-06-29上半年,它将计算1.5天。
我希望你能明白我的想法。我该怎么计算呢?
发布于 2022-06-28 10:46:04
你能测试一下下面的代码吗?
$startDate = '2022-06-28';
$endDate = '2022-06-29';
$second_half = 0.5;
$first_half = 0.5;
$start = \Carbon\Carbon::parse($startDate);
$end = \Carbon\Carbon::parse($endDate);
$total_days = (float) $end->diff($start)->days;
if($first_half) {
$total_days += $first_half;
}
if ($second_half) {
$total_days += $second_half;
}
$total_days = preg_replace('/\\.$/','.0',rtrim($total_days,'0'));
// dd($total_days);发布于 2022-06-28 06:52:06
$second_half = $request->session_1; // value = 0.5
$first_half = $request->session_2; // value = 0.5
$start = Carbon::parse($request->start_date . ($first_half ? ' 12:00' : ' 00:00'));
$end = $second_half
? Carbon::parse($request->end_date . ' 12:00')
: Carbon::parse($request->end_date)->addDay();
$total_days = $end->floatDiffInDays($start);https://stackoverflow.com/questions/72781438
复制相似问题