получить последний день следующего месяца в php? - PullRequest
0 голосов
/ 31 марта 2020

У меня есть код php, как показано ниже, в котором я пытаюсь получить последний день следующего месяца.

<?php

date_default_timezone_set('America/Toronto');

echo date('l jS \of F Y h:i:s A');

$next_month_last_day  = date('t', strtotime('next month'));  // last day of the next month

print_r("\n");

print_r($next_month_last_day);   // Line A

?>

Постановка проблемы:

Мне интересно, какую ошибку я допустил в приведенном выше коде php, поскольку код в Строка A печатает 31. Должно быть напечатано 30, потому что последний день следующего месяца (апрель) равен 30.

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Просто используйте date('d', strtotime('last day of +1 month'));

0 голосов
/ 31 марта 2020

Мне пришлось вручную переписать сегодняшний день, чтобы DateTime не пропустил месяц. Но это не имеет значения, так как вы хотите знать только следующий месяц.

$dateTime = new DateTime('now', new DateTimeZone("America/Toronto"));
$dateTime->setDate($dateTime->format('Y'), $dateTime->format('m'), 01);

$nextMonth = $dateTime->modify('+1 month');

echo cal_days_in_month(CAL_GREGORIAN, $nextMonth->format('m'), $nextMonth->format('Y'));
...