LINUX.ORG.RU

Х.з.

Я тоже некрасиво делаю:

$next_year = $year = strftime("%Y", $time);
$month = strftime("%m", $time);
$next_month = $month+1;
if($next_month > 12)
{
    $next_month = 1;
    $next_year = $year+1;
}

$days_in_month = (strtotime("01-$next_month-$next_year") - strtotime("01-$month-$year"))/86400;

KRoN73 ★★★★★
()

Э-э-э... Подождать месяц и посчитать дни?

Miguel ★★★★★
()

> Разумеется можно проверять 28, 29, 30, 31 числа в месяце на checkdate и таким образом узнавать количество дней в месяце, но это как то слишком грубо, может быть есть более изящное решение?

Дааааааа, пыхпыхер -- это образ мышления. Такие задачки, между прочим, школьники на бейсике легко делают.

gaa ★★
()

(31 - (($m - 1) % 7 % 2) - ((($m == 2) << !!($y % 4))))

где $m - месяц, а $y - год (в пределах от 1901 до 2099 гг)

anonymous
()

loool, повесилили, спасибо!!!

До этого момента я не понимал, что такое быдлокодер.

anonymous
()

Сделай статический массив из 12 элементов. В каждом элементе -- кол-во дней в соответствующем месяце.

bigbit ★★★★★
()
Ответ на: комментарий от bigbit

if (!$y%4) {
  if (!$y%100) {
    if (!$y%400) $feb = 29;
  } else {
    $feb = 28;
  }
}
else $feb = 28;

friday ★★★
()

$timestamp = strtotime('1st January 2004');

$days = idate("t", $timestamp);

afaik
()
Ответ на: комментарий от gaa

>Дааааааа, пыхпыхер -- это образ мышления. Такие задачки, между прочим, школьники на бейсике легко делают.

Ну-ка мне, быстро, пример на Бейсике.

KRoN73 ★★★★★
()
Ответ на: комментарий от bigbit

>Сделай статический массив из 12 элементов. В каждом элементе -- кол-во дней в соответствующем месяце.

Ну да, а если год year%4==0, но не year%100==0, но не year%400==0 то февраль +=1. Даже вариант в два strtotime проще выходит :) А уж date('t')...

И это ещё без учёта всяких потенциальных заморочек с Григорианским календарём...

KRoN73 ★★★★★
()
Ответ на: комментарий от bigbit

> Сделай статический массив из 12 элементов. В каждом элементе -- кол-во дней в соответствующем месяце.

Угу, и благополучно про$бывать високосные годы. Хотя, если проект не рассчитан на жизнь длиннее года...

one_more_hokum ★★★
()
Ответ на: комментарий от one_more_hokum

Ну, про високосные - мало кто знает. Зато количество людей, знающих про каждый сотый год - уже много меньше. А про каждый четырёхсотый - стремится к нулю :)

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.