Определение длины месяца и первого дня

#php #date

#php #Дата

Вопрос:

Есть ли простой способ, учитывая месяц и год, установить:

  • Сколько дней в этом месяце (с учетом високосных лет) выполнено
  • На какой день недели приходится первый день?

Ответ №1:

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

 $num = cal_days_in_month(CAL_GREGORIAN, 8, 2003); // 31
  

и дни недели:

 $weekday = date("l", mktime(0,0,0,$month,$day,$year));
$print ($weekday);
  

Последнее не очень эффективно, но кажется лучше, чем использование getdate:

 $my_t=getdate(date("U"));
print("$my_t[weekday], $my_t[month] $my_t[mday], $my_t[year]");
  

Вывод как

 Wednesday, September 29, 2011
  

Ответ №2:

Вы можете найти ответ на свои вопросы со всеми необходимыми переменными и вычислениями, перейдя в Википедию. http://en.wikipedia.org/wiki/Calculating_the_day_of_the_week

Ответ №3:

Взгляните на date функцию, в частности date('t') , на количество дней в месяце (т.Е. На месяц, указанный в time() ) и date('t',$epoch) на количество дней месяца, представленное меткой $epoch времени (которая, конечно, указана в эпохе).

А для дня недели есть date('l',$epoch) (где первый аргумент является строчным 'L' ).