Проверка корректности даты в PHP


Достаточно часто в PHP приходится проверять дату на корректность. Например, проверить дату рождения, введённую пользователем. Проверок, на самом деле, очень много. Тут нужно проверить, чтобы не было 13-го или 0-го месяца, чтобы не было 31-го июня или 30-го февраля. С другой стороны, 31 июля быть может. Таким образом, проверка даты на корректность в PHP является непростой задачей. Однако, делается это всё с помощью одной строчки.

В PHP есть одна функция, которая называется checkdate():

<?php /* Эти данные могут прийти, например, из отправленной формы */
$day = 31;
$month = 6;
$year = 2012;
if (checkdate($month, $day, $year))
echo "Дата корректная";
else echo "Дата некорректная";
echo "<br />";
$day = 31;
$month = 7; $year = 2012;
if (checkdate($month, $day, $year))
echo "Дата корректная";
else echo "Дата некорректная";
?>

Поскольку 31-го июня не существует, функция checkdate() вернулся false, а вот 31-е июля существует, поэтому было возвращено true. Вот такая простая в применении функция выполняет очень сложную проверку, тем самым, облегчая жизнь программисту.