Исходя из документации функции date мы можем воспользоваться параметром t:
$date = '2018-01-01';
echo date('t', strtotime($date)); // или echo date('Y-m-t', strtotime($date));
Однако на системах, которые ещё не перешли на 64-битную архитектуру расчёт после 2038 года может быть неверен. Однако, в этом случае можно так же воспользоваться и объектом DateTime.
$date = new DateTime('2018-01-01');
echo $date->format('t'); // или echo $date->format('Y-m-t');
Главная->Уроки по php->Лучший способ определения последнего дня месяца