- Формирование массива, содержащий все часы из интервала
- Массив с интервалом одного дня
- Результат:
- Интервал с шагом в 30 минут
- Результат:
- Массив c интервалом в несколько дней
- Результат:
- Заполненные PHP-массивы для дат
- Часы
- Время суток
- Дни недели
- Массив с месяцами
- Массив с датами текущего месяца
- Результат:
- Массив с диапазоном годов
- Результат:
- Как получить все дни между датами в PHP
- Количество дней между датами
- Формирование массива, содержащий все дни из интервала
- Результат:
- Функция на основе strtotime
- Результат:
- PHP массив со значениями даты
- Часы
- Время суток
- Дни недели
- Массив с месяцами
- Массив с датами текущего месяца
- КАТЕГОРИИ
- Перебор дат в заданном диапазоне на php.
Формирование массива, содержащий все часы из интервала
Массив с интервалом одного дня
$period = new DatePeriod( new DateTime('09:00'), new DateInterval('PT1H'), new DateTime('18:01') ); $dates = array(); foreach ($period as $key => $value) < $dates[] = $value->format('H:00'); > print_r($dates);
Результат:
Array ( [0] => 09:00 [1] => 10:00 [2] => 11:00 [3] => 12:00 [4] => 13:00 [5] => 14:00 [6] => 15:00 [7] => 16:00 [8] => 17:00 [9] => 18:00 )
Интервал с шагом в 30 минут
$period = new DatePeriod( new DateTime('09:00'), new DateInterval('PT30M'), new DateTime('18:01') ); $dates = array(); foreach ($period as $key => $value) < $dates[] = $value->format('H:i'); > print_r($dates);
Результат:
Array ( [0] => 09:00 [1] => 09:30 [2] => 10:00 [3] => 10:30 [4] => 11:00 [5] => 11:30 [6] => 12:00 [7] => 12:30 [8] => 13:00 [9] => 13:30 [10] => 14:00 [11] => 14:30 [12] => 15:00 [13] => 15:30 [14] => 16:00 [15] => 16:30 [16] => 17:00 [17] => 17:30 [18] => 18:00 )
Массив c интервалом в несколько дней
$period = new DatePeriod( new DateTime('28.03.2022 18:00'), new DateInterval('PT1H'), new DateTime('29.03.2022 09:01') ); $dates = array(); foreach ($period as $key => $value) < $dates[] = $value->format('d.m.Y H:00'); > print_r($dates);
Результат:
Array ( [0] => 28.03.2022 18:00 [1] => 28.03.2022 19:00 [2] => 28.03.2022 20:00 [3] => 28.03.2022 21:00 [4] => 28.03.2022 22:00 [5] => 28.03.2022 23:00 [6] => 29.03.2022 00:00 [7] => 29.03.2022 01:00 [8] => 29.03.2022 02:00 [9] => 29.03.2022 03:00 [10] => 29.03.2022 04:00 [11] => 29.03.2022 05:00 [12] => 29.03.2022 06:00 [13] => 29.03.2022 07:00 [14] => 29.03.2022 08:00 [15] => 29.03.2022 09:00 )
Заполненные PHP-массивы для дат
Заполненные PHP-массивы с элементами дат для проверки данных, операций с датами, вывода списков в формах и т.д.
Часы
$array = array( 1 => '01', 2 => '02', 3 => '03', 4 => '04', 5 => '05', 6 => '06', 7 => '07', 8 => '08', 9 => '09', 10 => '10', 11 => '11', 12 => '12', 13 => '13', 14 => '14', 15 => '15', 16 => '16', 17 => '17', 18 => '18', 19 => '19', 20 => '20', 21 => '21', 22 => '22', 23 => '23', 24 => '24' );
Время суток
$array = array( 1 => 'утро', 2 => 'день', 3 => 'вечер', 4 => 'ночь' );
Дни недели
$array = array( 1 => 'понедельник', 2 => 'вторник', 3 => 'среда', 4 => 'четверг', 5 => 'пятница', 6 => 'суббота', 7 => 'воскресенье' );
Массив с месяцами
$array = array( 1 => 'Январь', 2 => 'Февраль', 3 => 'Март', 4 => 'Апрель', 5 => 'Май', 6 => 'Июнь', 7 => 'Июль', 8 => 'Август', 9 => 'Сентябрь', 10 => 'Октябрь', 11 => 'Ноябрь', 12 => 'Декабрь' );
Массив с датами текущего месяца
$start = strtotime(date('Y-m-01')); $finish = strtotime(date('Y-m-t')); $array = array(); for($i = $start; $i print_r($array);
Результат:
Array ( [0] => 01.07.2023 [1] => 02.07.2023 [2] => 03.07.2023 [3] => 04.07.2023 [4] => 05.07.2023 [5] => 06.07.2023 [6] => 07.07.2023 [7] => 08.07.2023 [8] => 09.07.2023 [9] => 10.07.2023 [10] => 11.07.2023 [11] => 12.07.2023 [12] => 13.07.2023 [13] => 14.07.2023 [14] => 15.07.2023 [15] => 16.07.2023 [16] => 17.07.2023 [17] => 18.07.2023 [18] => 19.07.2023 [19] => 20.07.2023 [20] => 21.07.2023 [21] => 22.07.2023 [22] => 23.07.2023 [23] => 24.07.2023 [24] => 25.07.2023 [25] => 26.07.2023 [26] => 27.07.2023 [27] => 28.07.2023 [28] => 29.07.2023 [29] => 30.07.2023 [30] => 31.07.2023 )
Массив с диапазоном годов
$start = 1990; $finish = date('Y'); $array = array(); for($i = $start; $i print_r($array);
Результат:
Array ( [0] => 1990 [1] => 1991 [2] => 1992 [3] => 1993 [4] => 1994 [5] => 1995 [6] => 1996 [7] => 1997 [8] => 1998 [9] => 1999 [10] => 2000 [11] => 2001 [12] => 2002 [13] => 2003 [14] => 2004 [15] => 2005 [16] => 2006 [17] => 2007 [18] => 2008 [19] => 2009 [20] => 2010 [21] => 2011 [22] => 2012 [23] => 2013 [24] => 2014 [25] => 2015 [26] => 2016 [27] => 2017 [28] => 2018 [29] => 2019 [30] => 2020 [31] => 2021 [32] => 2022 [33] => 2023 )
Как получить все дни между датами в PHP
Несколько примеров как найти все дни в промежутке между двумя датами в виде значения и списка.
Количество дней между датами
$date_1 = '28.03.2022 00:00'; $date_2 = '02.04.2022 23:59'; $seconds = abs(strtotime($date_1) - strtotime($date_2)); echo round($seconds / 86400, 1); // 6
$date_1 = '28.03.2022 00:00'; $date_2 = '02.04.2022 18:00'; $seconds = abs(strtotime($date_1) - strtotime($date_2)); echo round($seconds / 86400, 1); // 5.6
Формирование массива, содержащий все дни из интервала
Первый способ – использование классов DatePeriod, DateTime и DateInterval (доступны с версии PHP 5.3).
* Если в конечной дате не указать время (23:59), то в результирующем массиве не будет последнего дня.
$period = new DatePeriod( new DateTime('28.03.2022'), new DateInterval('P1D'), new DateTime('02.04.2022 23:59') ); $dates = array(); foreach ($period as $key => $value) < $dates[] = $value->format('d.m.Y'); > print_r($dates);
Результат:
Array ( [0] => 28.03.2022 [1] => 29.03.2022 [2] => 30.03.2022 [3] => 31.03.2022 [4] => 01.04.2022 [5] => 02.04.2022 )
Функция на основе strtotime
function get_dates($start, $end, $format = 'd.m.Y') < $day = 86400; $start = strtotime($start . ' -1 days'); $end = strtotime($end . ' +1 days'); $nums = round(($end - $start) / $day); $days = array(); for ($i = 1; $i < $nums; $i++) < $days[] = date($format, ($start + ($i * $day))); >return $days; > $dates = get_dates('28.03.2022', '02.04.2022'); print_r($dates);
Результат:
Array ( [0] => 28.03.2022 [1] => 29.03.2022 [2] => 30.03.2022 [3] => 31.03.2022 [4] => 01.04.2022 [5] => 02.04.2022 )
PHP массив со значениями даты
Готовые массивы с значениями дат для проверки данных при разработке сайтов в Киеве, PHP функции для работы с датами, PHP модули вывода списков в нужных формах даты и время.
Часы
Время суток
Дни недели
Массив с месяцами
Массив с датами текущего месяца
КАТЕГОРИИ
- Создание Интернет магазина
- Создание корпоративного сайта
- Создание сайта каталога
- Создание сайта визитки
- Создание Landing page
- Создание эксклюзивного проекта
- Создание сайта для дропшиппинга
- Создание сайта для продажи
- Создание новостного сайта
- Создание сайта для доставки еды
- Создание сайта для строительной компании
- Создание сайта для юридической фирмы
- Создание сайта для агентства недвижимости
- Создание сайта для салона красоты
- Создание сайта мебели
- Создание сайта сантехники
- Создание интернет-магазина кофе и чая
- Создание интернет-магазина одежды
- Создание интернет-магазина косметики
- Создание интернет-магазина кондитера
- Создание интернет-магазина парфюмерии
- Создание интернет-магазина игрушек
- Создание интернет-магазина посуды
- Создание интернет-магазина электроники
- Создание интернет-магазина строительных материалов
- Создание интернет-магазина интимных товаров
- Создание интернет-магазина спортивных товаров
- Создание сайта для турагентства
- Разработка сайта по трудоустройству
- Создание сайта для хостинг компании
- Создание сайта для психолога
- Создание сайта для гос. организации
- Создание сайта для стоматологии
- Создание сайта для украинской православной церкви
- Создание интернет-магазина мужской и женской обуви
- Создание интернет-магазина сумок и чемоданов
- Разработка интернет-магазина удобрений и семян
- Разработка сайта по проведению онлайн семинаров
- Создание сайта по аренде автобусов
- Создание сайта по ремонту техники
- Создание сайта по изделиям из камня и мрамора
- Изготовление магазина медицинского оборудования
- Изготовление сайта для учителя или репетитора
- Изготовление сайта для кафе или ресторана
- Разработка сайта для гостиницы, отеля
- Создание сайта для фотографа
- Создание интернет-магазина аптеки
- Проектирование сайта для дистанционного обучения
- Интернет-магазин товаров для животных
- Создание сайта для цветочного магазина
- Изготовление сайта ворот и ограждений
- Создание сайта для продажи товаров
Перебор дат в заданном диапазоне на php.
На днях возникла задача на перебор дат в заданном диапазоне на php. Точнее — нужно было создать функцию, которая на входе принимала дату (в двух вариантах: день, месяц, год или месяц и год), а на выходе выдавала все даты месяца, который принимался в качестве аргумента, начиная с первого дня месяца, либо же с заданного, если он передается функции.
Например, передается дата 09-12-2013. Функция должна создать массив с датами, начиная с 2013-12-09 по 2013-12-31. Если же передается дата без дня, например, 12-2013, то возвращается массив дат с 2013-12-01 по 2013-12-31.
Основная трудность — это наличие различного количества дней в месяцах, поэтому мы не можем просто задать цикл из 30 или 31-го дней. Должен быть учет всех этих вариаций и наличие 29-го февраля (раз в 4 года). Но решение оказалось простым. Вот, собственно говоря, сама функция:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
function getDatesArray($day = null, $month, $year) < //инициализируем массив, в котором будем сохранять даты $dates = array(); //определяем день старта if ($day) < $date = $year . '-' . $month . '-' . $day; >else < $date = $year . '-' . $month . '-01'; >//заполняем массив датами do < $dates[] = $date; echo $date . "
"; $date = date('Y-m-d', strtotime($date . ' + 1 days')); $currDateArr = explode('-', $date); > while ($month == $currDateArr[1]); >
Для получения нового дня, используем простое выражение strtotime($date . ‘ + 1 days’). Выход из цикла осуществляется проверкой равенства месяца текущей (новой) даты и заданного месяца.
Если мы вызовем функцию со следующими аргументами:
то получим даты:
2013-10-01
2013-10-02
2013-10-03
…
2013-10-31
Встроенные в php функции по форматированию даты сами определяют, сколько дней в том или ином месяце.
P.S. Если у вас есть вариант более лаконичный — пишите в комментариях:)