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

问题描述 投票:0回答:1

如何获得仅指两个日期之间的一个月的小时数?例如,如何在屏幕截图中获取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月获得?

附:我需要这个来计算统计数据(预订百分比)。

laravel php-carbon
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.