Входит ли текущая дата в интервал, если года разные?
Здравствуйте!
Есть константы START_YEAR = '01.09'; и END_YEAR = '31.05';.
Они определяют начало и конец учебного года. Данные даты могут меняться (месяц нет, а вот дни - вполне)
Мне нужно понять, входит ли текущая дата в учебный год. Из-за того, что в константах нет года (они универсальные на несколько лет вперед), не могу понять, как проще написать это условие.
Заранее спасибо за помощь!
UPD.
Возможно, я дал мало конкретики. Ситуация такая.
Есть курсы для школьных классов: курс для 1 класса, курс для 2 класса ... курс для 11 класса.
Данные в этих курсах не меняются и создаются сразу для каждого класса один раз.
Когда школьник регистрируется, он указывает свой класс, например 6.
Если текущая дата входит в учебный год, то ему доступен только курс для его класса.
В мае, доступ закрывается до сентября. В сентябре - школьнику доступен курс уже за 7 класс и т.д.
Так как курсы создаются за один раз и могут быть доступны в любой год, я не могу привязывать к курсу какие-то даты. Также, еще сложность: в этом году, например, 1 сентября - это воскресенье, значит начало учебного года будет не 01.09, а 02.09 - поэтому дни тоже нужно проверять.
Dmitry Bay, может быть. Но даты из констант должны быть в разных годах.
Например, если текущая дата 11.03.2024, для START_YEAR я добавляю текущий год - 1, а для END_YEAR добавляю текущий.
Но как быть если текущая дата, например, 11.10.2024. Если я укажу текущий год - 1, то будет 2023, хотя должен быть 2024, т.к. это начало учебного года. Нужно делать и проверку по месяцу и если он до 12, то не отнимать от текущего года. В общем, очень много проверок получается. Поэтому я и подумал, может можно как-то проще это сделать.
Если я правильно понял, то можно смотреть на месяц и определять в интервале он или нет, т.е создать массив с месяцами и от даты получать месяц, через preg_match например, и искать в массиве, если есть то делать
bichara2002, вариант. Но мне еще нужно и дни учитывать. Т.е. это пока 01.09 и 31.05, но может быть 10.09 и если делать проверку в массиве по месяцам, то текущая дата 05.09 будет подходить, но не пройдет по дате.
ВоскресенЬе это называется. И совершенно непонятно, кому и зачем нужно это проверять. Синдром вахтера, имхо.
Когда школьник указывает свой класс, пересчитайте его к году поступления. Потом элементарно определите, курс за какой год ему сейчас должен быть доступен, если нынешняя дата попадает в однажды, без делания головы, однозначно созданный интервал учебного года за этот год.
Впрочем, вычислить этот интервал, отталкиваясь от сегодняшней даты, тоже элементарно. Просто проверить, не попадает ли эта дата в диапазон от последней пятницы мая до первого будня сентября. Исключительно.
Adamos, за орфографию спасибо, поправил.
По синдрому вахтера - скажите это министерству образования, которое начало учебного года привязывает к будним дням недели.
За идею - спасибо, подумаю.