PHP Carbon,如何获取日期范围内的所有日期?

104

如何在PHP中获取两个日期之间的所有日期?最好使用Carbon处理日期。

$from = Carbon::now();
$to = Carbon::createFromDate(2017, 5, 21);

我想要获取这两个日期之间的所有日期,但是怎么做呢?我只能找到使用strtotime函数的解决方案。

12个回答

-2
//To get just an array of dates, follow this.


        $period = CarbonPeriod::create('2018-06-14', '2018-06-20');

        $p = array();
    // If you want just dates
    // Iterate over the period and create push to array
        foreach ($period as $date) {
            $p[] = $date->format('Y-m-d');
        }

    // Return an array of dates

        return $p;

请在您的答案中添加描述,以便任何人都能理解您的代码算法。不要喂食。 - ibnɘꟻ

-3
非常简单的解决方案(它适用于旧的“<1.29”碳):
// set $start and $end to any date
$start = Carbon::now()->addDays(-10);
$end = Carbon::now();

$dates = [];
for($i = 0; $i < $end->diffInDays($start); $i++){
    $dates[] = (clone $start)->addDays($i)->format('Y-m-d');
}
dd($dates);

惊人的慢解决方案 - user1469734
最快的解决方案显然是使用 CarbonPeriod,但它是相对较新的 Carbon 功能,许多应用程序无法使用。我的解决方案涵盖了旧版本的 carbon,与 @Sebastien 的解决方案一样快...我刚刚测量过了... - fico7489

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接