Laravel,Carbon。获取日期之间特定月份的小时数

时间:2018-01-02 17:52:44

标签: laravel php-carbon

如何获得仅指两个日期之间的一个月的小时数? 例如,如何在屏幕截图中获取12月第一行或第二行的小时数?

DB screenhsot

我试过这个(在循环中生成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。我需要这个来计算统计数据(预订百分比)。

1 个答案:

答案 0 :(得分:0)

您可能需要->addMonth()然后转到->startOfMonth(),然后使用diffInHours()

Carbon::parse($book->departure_date)
    ->addMonth()
    ->startOfMonth()
    ->diffInHours(Carbon::parse($book->arrival_date.$book->arrival_time));

我省略了$book->departure_time,否则时间戳不会是该月第一天的第一秒。