PHP и.... дата...

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Гость
#1
вводит пользователь дату...

3и поля = 1е день, 2е месяц, 3е год...

проверяем их сначала все 3и на пустоту а затем проверяем:
год чтоб был ОТ 1900 ДО текущего + 5
месяц ОТ 1 ДО 12
и день... ОТ 1 ДО (в зависимости от введённого месяца и года, например 2 месяц, 2003 года - только 28 дней)

я попробывал заюзать функцию mktime

Код:
function CDD ($d, $m, $y) 
{ 
if ($m == date ('m', mktime (0, 0, 0, $m, $d, $y))) return 'day - ok'; else return 'day - wrong'; 
}

со свежими годами вроде прокатило... типа к примеру с 2004 годом 30 днём и 2 месяцем мктайм выдало 1 число и 3 месяц... месяца не совпали значит день типа не правильный...
вот... но на винде матерится меньше 1 1 1970... а на линуксе как то странно оно возвращает дату......

есть способ более получче ? чтоб диапазон года и на винде и на линухе был от 1900 ?

или самому писать вычислялку высокосного и дней месяцев типа 30 или 31 ?

может как нидь извращнуться с localtime () ?
 
S

strander

Гость
#2
function CDD ($d, $m, $y)
{
$lmd[1] = $lmd[3] = $lmd[5] = $lmd[7] = $lmd[8] = $lmd[10] = $lmd[12] = 31;
$lmd[4] = $lmd[6] = $lmd[9] = $lmd[11] = 30;
$lmd[2] = 28; if ($y % 4 == 0) $lmd[2] = 29;

if ($d < 1 || $d > $lmd[$m]) return 'bok'; else return 'ok';
}
 
Статус
Закрыто для дальнейших ответов.