如何获得仅指两个日期之间的一个月的小时数? 例如,如何在屏幕截图中获取12月第一行或第二行的小时数?
我试过这个(在循环中生成subMonths,所以不用担心):
$bookings = Booking::whereDate('departure_date', '>=', Carbon::now()->subMonths($i)->startOfMonth())
->orWhereDate('arrival_date', '<=', Carbon::now()->subMonths($i)->endOfMonth())->get();
然后:
foreach ($bookings as $book) {
echo Carbon::parse($book->departure_date.$book->departure_time)->diffInHours(Carbon::parse($book->arrival_date.$book->arrival_time));
}
但在这种情况下,我会得到整个预订的小时数,如何才能在12月份获得它?
P.S。我需要这个来计算统计数据(预订百分比)。
答案 0 :(得分:0)
您可能需要->addMonth()
然后转到->startOfMonth()
,然后使用diffInHours()
。
Carbon::parse($book->departure_date)
->addMonth()
->startOfMonth()
->diffInHours(Carbon::parse($book->arrival_date.$book->arrival_time));
我省略了$book->departure_time
,否则时间戳不会是该月第一天的第一秒。