1

我正在尝试使用 Laravel 构建酒店预订模块。我不知道如何计算使用Carbon的住宿天数。例如,我有两个日期:

$date1 = Carbon::parse('2019-07-25 12:00:00');
$date2 = Carbon::parse('2019-07-29 10:00:00');
$days  = $date2->diffInDays($date1); 
$nights = ??

我怎样才能知道这两个日期之间有多少晚?

4

2 回答 2

1

您可以将它与 DateTime 类一起使用

    $date1 = new DateTime('2019-07-25 12:00:00');
    $date2 = new DateTime('2019-07-29 10:00:00');
    $nightsDays = $date2->diff($date1)->format("%a");
于 2019-11-24T07:00:46.960 回答
1

如果您将到达日的时间设置为 00:00,则可确保正确计算间隔内的夜数。Carbon 是 DateTime 的扩展。您也可以将所有日期时间方法与 Carbon 一起使用。

例子

$dateCheckin = new DateTime('2019-07-25 18:00:00');
$dateCheckout = new DateTime('2019-07-26 10:00:00');  //next Day Morning

$nightsDays = $dateCheckin
  ->setTime(0,0)
  ->diff($dateCheckout)
  ->format("%a")
;

echo $nightsDays;  //1

如果没有将时间设置为 00:00,您将收到此数据的错误结果 0。

于 2019-11-24T16:51:41.440 回答