- date_create: documentation ( source)
<?php
$start = date_create('2019-01-21');
$end = date_create('2019-01-01');
$interval = new \DateInterval('PT1H');
$period = new \DatePeriod($start, $interval, $end);
foreach($period as $date) {
echo $date->format('r') . \PHP_EOL;
}