Получить N количества последовательных четвергов из условно определенной начальной даты

Я пытаюсь получить дату только четверга каждой недели на основе общего ввода недели в цикле.

Пример, который я поставил на 4 недели вперед, означает, что с текущей недели до следующих 4 недель будет использоваться дата четверга.

Что я сделал до сих пор:

$totalWeek = 4;
for($i=0; $i<$totalWeek ; $i++) {
    $getDateEveryThursday = strtotime("next Thursday");
    $convertDate = date('d-m-Y', $getDateEveryThursday);
}

Ожидаемый результат, если текущая дата и время наступает до 20:00 четверга:

21-SEP-2023
28-SEP-2023
05-OCT-2023
12-OCT-2023

Кроме того, если текущая дата-время — четверг и равна или позже 20:01, даты должны быть:

28-SEP-2023
05-OCT-2023
12-OCT-2023
19-OCT-2023

Почему вы хотите, чтобы он переключился в 20:00?

Nick 18.09.2023 09:03

Тематически связанные: Получите еженедельные даты в понедельник, пятницу, X раз и Получите даты всех пятниц в данном году и, конечно, вы можете просто добавить +$i weeks в свой strtotime() вызов, например PHP, чтобы заполнить раскрывающийся список. список с конкретными датами Кстати, где в вашем коде упоминание об обрезке 8pm?

mickmackusa 26.09.2023 00:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы были почти там. Учитывая имеющийся у вас код, вы можете сделать:

$weeks = 4;
$date = "";
for($weekNo = 0; $weekNo < $weeks; $weekNo++) {
    $thursday = strtotime("next Thursday " . $date);
    $date = date('d-m-Y', $thursday);
    echo $date . "\n";
}

Что в настоящее время вернет:

21-09-2023
28-09-2023
05-10-2023
12-10-2023

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

Смотрите демо: https://3v4l.org/kQKm6

Если вы хотите добавить смену на следующий четверг, в четверг после 20:00, вам нужно добавить немного, чтобы пропустить неделю вперед, например:

$weeks = 4;
$date = "";
if ((date("l") == "Thursday") && (date('H') >= 20)) {
    $date = date('d-m-Y', strtotime("next Thursday"));
}
for($weekNo = 0; $weekNo < $weeks; $weekNo++) {
    $thursday = strtotime("next Thursday " . $date);
    $date = date('d-m-Y', $thursday);
    echo $date . "\n";
}

Смотрите демо: https://3v4l.org/tfBU1

Другие вопросы по теме