Как получить все даты в заданном диапазоне дат (между двумя датами) на php
27.07.2013
Потребовалось получить значения всех дат в диапазоне, для php версии 5.3+ можно воспользоваться DatePeriod, но для более старых версий пришлось найти альтернативный путь.
1 |
function createDateRangeArray($strDateFrom,$strDateTo) { // takes two dates formatted as YYYY-MM-DD and creates an // inclusive array of the dates between the from and to dates. // could test validity of dates here but I'm already doing // that in the main script $aryRange=array(); $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2), substr($strDateFrom,8,2),substr($strDateFrom,0,4)); $iDateTo=mktime(1,0,0,substr($strDateTo,5,2), substr($strDateTo,8,2),substr($strDateTo,0,4)); if ($iDateTo>=$iDateFrom) { array_push($aryRange,date('Y-m-d',$iDateFrom)); // first entry while ($iDateFrom<$iDateTo) { $iDateFrom+=86400; // add 24 hours array_push($aryRange,date('Y-m-d',$iDateFrom)); } } return $aryRange; } echo '<pre>'; print_r(createDateRangeArray('2013-04-11', '2013-04-20')); echo '</pre>'; |
Данный пример иллюстрирует использование дат в формате SQL, для русских дат нужно переконвертировать полученный массив.