Лучший белый каталог сайтов и статей с прямыми ссылками
Каталог   Добавить ссылку   Добавить статью   Администрирование   Карта  
 

Добро пожаловать в белый каталог сайтов и статей elenaageeva.ru! В наш каталог вы можете совершенно бесплатно добавлять свои сайты и статьи без обратной ссылки.

Просьба добавлять сайты в соответствующую категорию! С уважением, администратор каталога..


Проверка корректности даты при помощи PHP.

Решение

Проверяется с помощью функции checkdate():

$valid = checkdate($month,$day,$year);

Обсуждение

Функция checkdate() возвращает true, если переменная $month имеет значение между 1 и 12, переменная $year имеет значение между 1 и 32767, а переменная $day находится в интервале от 1 до корректного максимального числа дней для переменных $month и $year. Високосные года корректно обрабатываются с помощью функции checkdate(), при этом даты представляются с использованием Григорианского календаря.

Функция checkdate() поддерживает весьма широкий диапазон допустимых лет, поэтому необходима дополнительная проверка пользовательского ввода, если, например, ожидается ввод даты рождения. Книга мировых рекордов Гиннеса утверждает, что возраст старейшего жителя когда-то достиг 122 лет. Убедиться, что дата рождения пользователя находится в пределах между 18 и 122 годами, можно посредством функции pc_checkbirthdate(), приведенной в примере описанном ниже:

function pc_checkbirthdate($month,$day,$year) {
          $min_age = 18;
          $max_age = 122;

          if (! checkdate($month,$day,$year)) {
                    return false;
          }

          list($this_year,$this_month,$this_day) = explode(',',date('Y,m,d'));

          $min_year = $this_year - $max_age;
          $max_year = $this_year - $min_age;

          print "$min_year,$max_year,$month,$day,$year\n";

          if (($year > $min_year) && ($year < $max_year)) {
                    return true;
          } elseif (($year == $max_year) &&
                    (($month < $this_month) ||
                    (($month == $this_month) && ($day <= $this_day)))) {
                    return true;
          } elseif (($year == $min_year) &&
                    (($month > $this_month) ||
                    (($month == $this_month && ($day > $this_day))))) {
          return true;
          } else {
                    return false;
                    }
          }

Далее приведено несколько способов применения:

// проверка даты 3 декабря 1974 года
if (pc_checkbirthdate(12,3,1974)) {
          print "You may use this web site.";
} else {
          print "You are too young to proceed.";
          exit();
}

В этой функции сначала вызывается функция checkdate(), проверяющая корректность значений переменных $month$day и $year. Затем выполняются различные сравнения, позволяющие удостовериться, что введенные даты находятся в диапазоне, установленном переменными $min_ageи $max_age.

Если переменная $year находится в диапазоне от $min_year до $max_year, не включая границы, то дата определенно находится внутри диапазона, и функция возвращает true. Если нет, то выполняются некоторые дополнительные проверки. Если значение переменной $year равно$max_year (например в 2002 году переменная $year равна 1984), то значение переменной $monthдолжно быть меньше номера текущего месяца. Если значение переменной $month равно номеру текущего месяца, то значение переменной $day должно быть меньше или равно номеру текущего дня. Если значение переменной $year равно $min_year (например в 2002 году переменная $yearравна 1880), то значение переменной $month должно превышать номер текущего месяца. Если значение переменной $month равно номеру текущего месяца, то значение переменной $day должно быть больше номера текущего дня. Если не выполняется ни одно из этих условий, то введенная дата находится вне соответствующего диапазона, и функция возвращает false.

Функция возвращает true, если введенная дата отстает от текущей ровно на $min_age лет, но возвращает false, если введенная дата опережает текущую ровно на $max_age лет. Другими словами, это 18-й день рождения, а не 123-й.



Комментарии:

Комментариев нет

Добавить свой комментарий:

Имя:

E-Mail адрес:

Комментарий:

Ваша оценка:

Введите число, которое Вы видите на картинке:
Информация
Источник:
http://www.сайты-всем.рф/files/php/proverka_korrektnosti_daty.php
Автор: Игорь
Категории:
Оценка модератора: Нет
Оценка пользователей: Нет
Переходов на сайт:0
Переходов с сайта:0
 
Рейтинг@Mail.ru продвижение самостоятельно

Поисковое продвижение здесь.

Под ключ забор из профнастила у нас.

Каталог популярных сайтов 200stran.ru: показано число посетителей за сегодня, онлайн, из каждой страны и за всё время www.copyright.ru