Intereting Posts
Определить кодировку base64 в PHP? Почему разные результаты 0.5 mod 0.1 на разных языках программирования? Как включить разрешение разрешения в require_once? Преобразование даты Excel с использованием PHP Excel установить дату по умолчанию в datepicker только по вторникам и средам? $ _FILES пуст после отправки формы PHP: сортировка массива PHP избегает статических классов, чтобы избежать зависимостей, но мне нужно использовать глобальные везде merge_array возвращает null, если один или несколько массивов пуст? Symfony 2 должен реализовывать UserProviderInterface набор атрибутов сортировки magento по позиции? получить ширину экрана в javascript-переменную и отправить ее через ajax на php-страницу, чтобы избежать загрузки страницы PHP не читает весь CSV-файл Можно ли сделать мои образы, вызванные из базы данных, ссылкой на другую страницу? PHP короткий открытый тег против длинного открытого тега

проверка регулярного выражения даты php

Я пытаюсь valdiate поле даты « YYYYMMDD » с использованием регулярного выражения PHP. Я попробовал что-то вроде этого

 /([0-9]{4})([0-9]{2})([0-9]{2})/ 

но в этом случае он примет любые две цифры, такие как 01-99 для MM или DD, но я ищу что-то для 01-12 для MM и 01-31 для DD. Вы посоветуете это сделать?

благодаря

Вместо регулярных выражений вы также можете разделить строку и использовать checkdate чтобы узнать, действительна ли дата.

Это должно сделать работу:

 function dateValidate($date) { $t = strtotime($date); return date('Ymd', $t) == $date; } 

edit: Стоит отметить, что это будет не так быстро, как регулярное выражение, но с точки зрения заметной производительности будет работать нормально.

Regex не кажется очень практичным для проверки даты. Почему бы не разделить его на куски, а затем использовать checkdate() ?

В течение месяца вы можете использовать:

 (0[1-9]|1[012]) 

Несколько дней:

 (0[1-9]| [12][0-9]|3[01]) 

Вот несколько хороших примеров.

НЕ ИСПОЛЬЗУЙТЕ checkdate как checkdate ('1 \' ',' 1 ',' 2000 ') проверяет TRUE.