2015-10-27 3 views
0

Я использую приведенный ниже код, чтобы получить количество дней в следующем месяце. Он отображает 31, когда в ноябре 30 дней. Как я могу решить?Количество дней в следующем месяце не работает

echo date('t',mktime(0,0,0,date("M",strtotime("+1 month")),1,date("Y"))); 
+0

могу я спросить ... почему все проблемы, если вы просто хотите количество дней в следующем месяце? просто любопытно – Andrew

+0

Я делаю приложение для календаря. Мне нужно количество дней в следующем месяце, поэтому я могу вычесть оставшиеся дни текущего месяца. Мне нужно показать даты через 30 дней в одной сетке, а не отдельные месяцы. – user892134

ответ

1

date("M",strtotime("+1 month")) возвращает строку (Nov), но mktime ожидает, что все аргументы будут целыми. Это означает, что вы получаете значение 0 впрыскивается вместо следующего месяца, который будет эффективно дать вам количество дней в январе

date("n",strtotime("+1 month")) 

вернет номер месяца

1
http://php.net/manual/en/function.cal-days-in-month.php

Это уже встроенный в PHP и что-то вроде:

$date = new DateTime(); 
$date = $date->add(new DateInterval('P1M')); 
echo $date->format('m'); 

даст вам 11 за ноябрь, когда в октябре.

+0

он спросил число дней в ноябре. Не месяц номер –

+1

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

1

Вы можете попробовать:

$days = cal_days_in_month(strtotime("first day of next month")); 
Смежные вопросы