Laravel Carbon get all dates between date range

Laravel Carbon get all dates between date range

In Laravel development, managing dates and times is a common task. Whether you're building a booking system, scheduling events, or handling subscription periods, efficiently working with date ranges is crucial. Laravel offers a powerful solution for this through the Carbon library. In this article, we'll explore how to leverage Carbon to effortlessly retrieve all dates within a given date range.

Understanding Carbon: Carbon is a PHP extension for DateTime manipulation, providing an expressive API for working with dates and times. Laravel comes pre-installed with Carbon, making it readily available for date handling in your applications.

Getting All Dates Between a Date Range: One frequent requirement in web applications is to fetch all dates falling within a specified range. Let's dive into how you can achieve this effortlessly with Carbon in Laravel.

Method #1

$period = CarbonPeriod::create('2022-01-14', '2022-01-20');

// Iterate over the period
foreach ($period as $date) {
    echo $date->format('Y-m-d');

// Convert the period to an array of dates
$dates = $period->toArray();

Method #2

use Carbon\Carbon;

// Define your start and end dates
$start_date = Carbon::parse('2024-02-01');
$end_date = Carbon::parse('2024-02-15');

// Create an empty array to store dates
$dates_in_range = [];

// Loop through each day between start and end dates
for ($date = $start_date; $date->lte($end_date); $date->addDay()) {
    $dates_in_range[] = $date->copy(); // Copy the date to avoid reference issues

// $dates_in_range now contains all dates between $start_date and $end_date
  1. We begin by importing the Carbon library and defining our start and end dates using Carbon::parse() method.
  2. An empty array $dates_in_range is created to store the dates within the range.
  3. We iterate through each day between the start and end dates using a for loop. The lte() method checks if the current date is less than or equal to the end date.
  4. Within each iteration, we copy the current date using $date->copy() to avoid reference issues, and then append it to the $dates_in_range array.
  5. After the loop completes, $dates_in_range contains all the dates within the specified range.

In Laravel development, working with date ranges is made seamless with Carbon. By leveraging its intuitive API, developers can efficiently handle various date-related tasks, such as retrieving all dates between a date range, as demonstrated in this article. Whether it's for scheduling, reporting, or any other functionality reliant on dates, Carbon simplifies the process, enhancing the productivity and reliability of Laravel applications.

Get The latest Coding solutions.

Subscribe to the Email Newsletter