PHP - Date Interval Maker
<?php
date_default_timezone_set('UTC');
/**
* IntervalMaker
*/
class IntervalMaker {
public function createDates($startDateStamp, $finishDateStamp, DateInterval $desiredInterval, $format = false) {
$startDate = new DateTime("@$startDateStamp");
$finishDate = new DateTime("@$finishDateStamp");
$times = array();
do {
$lastTime = end($times);
if ( $lastTime ){
$lastDate = ($format) ? new DateTime($lastTime[1]) : new DateTime("@".$lastTime[1]);
} else {
$lastDate = $startDate;
}
$nextDate = new DateTime("@".$lastDate->getTimestamp());
$nextDate->add($desiredInterval);
$times[] = ($format) ? array($lastDate->format($format), $nextDate->format($format)) : array( $lastDate->getTimestamp(), $nextDate->getTimestamp() );
} while ($nextDate < $finishDate);
return $times;
}
}
$timeMaker = new IntervalMaker();
// Formatted
$dates = $timeMaker->createDates(1388534400, 1433788898, new DateInterval('P1M'), 'm/d/Y');
var_dump($dates);
// Timestamped
$dates = $timeMaker->createDates(1388534400, 1433788898, new DateInterval('P1M'));
var_dump($dates);