Quick tip: loop over every day between 2 dates in PHP
Ever needed to loop over every day between 2 dates for a data set you need? This can come in handy when making charts for example. Luckily, it's super easy to do this with some date & time extensions.
Let's say you want to loop over every day between 2 specific dates, we can achieve this result with this code:
$startDate = new DateTime('2016-03-15');
$endDate = new DateTime('2016-05-01');
// These are the steps in which we will be iterating
$interval = DateInterval::createFromDateString('1 day');
// Create the period between the start/end date and the interval
$period = new DatePeriod($startDate, $interval, $endDate);
// Loop over the period
foreach ($period as $dateTime) {
// A certain day in this period
$date = $dateTime->format('Y-m-d');
}
We can also do this with relative times by changing the start date and end date. For example, the last 30 days:
$startDate = new DateTime('now - 30 days');
$endDate = new DateTime('now');
Obviously there's many ways to get around this, this is one way to quickly achieve this using PHP only.
Cheers 🍻!