Аватар пользователя Dima

Создание диапазона дат по дням в Drupal

В этой маленькой заметке опубликую очень простую функцию с помощью которой можно создать диапазон дат с шагом в один день учитывая специфику друпал, а имеенно используя функцию format_date().

В качестве аргументов функции нужно передать дату начала и дату окончания периода (в строковом формате), для которого нужно сформировать диапазон дат.
Функция возвращает массив дат в указаном периоде.

Функция:

  1.  
  2. /**
  3.  * Create day date range
  4.  */
  5. function create_date_range($start, $end) {
  6. global $language;
  7. $range = array();
  8. if (is_string($start) === true) $start = strtotime($start);
  9. if (is_string($end) === true ) $end = strtotime($end);
  10. if ($start > $end) return create_date_range($end, $start);
  11. do {
  12. $range[] = format_date($start, 'custom', 'Y, M d', NULL, $language->language);
  13. $start = strtotime('+ 1 day', $start);
  14. } while($start <= $end);
  15. return $range;
  16. }

Код примера:

  1.  
  2. /**
  3.  * Create day date range
  4.  */
  5. function create_date_range($start, $end) {
  6. global $language;
  7. $range = array();
  8. if (is_string($start) === true) $start = strtotime($start);
  9. if (is_string($end) === true ) $end = strtotime($end);
  10.  
  11. if ($start > $end) return create_date_range($end, $start);
  12.  
  13. do {
  14. $range[] = format_date($start, 'custom', 'Y, M d', NULL, $language->language);
  15. $start = strtotime("+ 1 day", $start);
  16. }
  17. while($start <= $end);
  18.  
  19. return $range;
  20. }
  21. print ('<pre>'.print_r(create_date_range('13-02-2012', '17-02-2012'), 1).'</pre>');