【发布时间】:2016-05-05 01:42:39
【问题描述】:
我正在尝试为 Laravel 4 中的预订系统创建一组中断日期。我的数据库中有一个测试行,开始日期为 2016 年 1 月 24 日,结束日期为 2016 年 1 月 29 日。
这是使用 Carbon 拉取行并循环访问日期以增加一天并将其添加到数组中的代码:
$reserved = Reservation::where('property_id', $property->id)->get();
$blackoutDays = [];
foreach($reserved as $r)
{
$start = new \Carbon\Carbon($r->start_date);
$end = new \Carbon\Carbon($r->end_date);
$days = $start->diff($end)->days;
for($i = 0; $i <= $days; $i++)
{
$date = '';
$date = $start->addDays($i);
$blackoutDays[] = $date->format('Y-m-j');
}
}
我想在 $blackoutDays 中得到的是:
[“2016-01-24”、“2016-01-25”、“2016-01-26”、“2016-01-27”、“2016-01-28”、“2016-01-29” "]
但我实际上得到的是:
[“2016-01-24”、“2016-01-25”、“2016-01-27”、“2016-01-30”、“2016-02-3”、“2016-02-8 "]
有谁知道为什么会发生这种情况/如何解决?有更好的方法吗?
【问题讨论】:
标签: php laravel-4 php-carbon