1. Мегаконкурс в апреле "Приведи друзей на codeby". Дарим деньги, подписку на журнал хакер и выдаем статус "Paid Access". Подробнее ...

    Скрыть объявление

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

Тема в разделе "PHP программирование", создана пользователем Guest, 31 янв 2004.

Наш партнер Genesis Hackspace
Статус темы:
Закрыта.
  1. Guest

    Guest Гость

    вводит пользователь дату...

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

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

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

    Код (Text):
    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 () ?
     
  2. strander

    strander Гость

    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';
    }
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей