В PHP уже есть встроенные функции, которые помогут получить последнюю дату заданного месяца.
Функции DateTime
и strtotime
наиболее полезны в этом сценарии, хотя хорошо известно и документировано, что strtotime
не будет работать точно или давать правильные результаты после 2038 года. Однако strtotime
отлично подходит для преобразования дат.
Обе функции используют формат t
, который, согласно официальному руководству, возвращает количество дней в месяце от заданной даты. Обратите внимание, что ключом к получению последнего дня месяца является буква t
, которая возвращает количество дней в данном месяце.
DateTime в PHP для получения последней даты месяца
Это лучший метод, который можно использовать для получения последней даты месяца как в будущем, так и в прошлом. Параметры, передаваемые в функцию format()
, – Y
, m
и t
. Эти константы определены в PHP.
Полное числовое представление года, состоящее из 4 цифр, обозначается буквой Y
, например, 2020. Числовое представление месяца, с ведущими нулями, обозначается буквой m
– это от 01
до 12
. А количество дней в данном месяце обозначается буквой t
.
Это лучший вариант, если используемая версия PHP старше 5.3.
$L = new DateTime( '2020-02-01' );
echo $L->format( 'Y-m-t' );
В приведенном выше коде функция DateTime
получает дату и, используя символы формата Y-m-t
, получает последнее число месяца в указанной дате.
strtotime() в PHP для получения последней даты месяца
strtotime()
является лучшим вариантом для PHP версий до 5.2.
$date = "2020-01-15";
echo date("Y-m-t", strtotime($date));