Регулярка даты

Статус
В этой теме нельзя размещать новые ответы.

afonya09

Полезный
Регистрация
31 Янв 2009
Сообщения
260
Реакции
19
Помогите с регулярным выражением для даты.

Дата в таком формате 2010-08-14
 
20([0-9][0-9])-(0[1-9]|1[0-2]))-(0[1-9]|[1-2][0-9]|3[0-1])
Должна быть активной до 2099 года. Проверь сначала. Это жесткая регулярка. Если ты парсишь что то и уверен что даты в правильном формате то можно упростить (для скорости)
 
Самый простой вариант - использовать strtotime() от тех данных, что тебе передали, и смотреть что получилось. Так и дату можно по-разному вводить, и ошибится в то же время нельзя, потому что при ошибке будет или 0 или 1 января 1970.

Если этот вариант не подходит, то тогда да, регуляркой.
Код:
^\d{4}-\d{2}-\d{2}$
или
^\d{4}-\d{1,2}-\d{1,2}$ - если можно указать месяц и число одной цифрой
(Например 2, а не 02, т.е. 1970-2-18 а не 1970-02-18)
 
можно еще так
Код:
<?
$str = "2010-08-14";
$reg = '/^([0-9]{4})-([0-9]{2})-([0-9]{2})$/';
if(preg_match($reg,$str,$match)){
	print_r($match); 
}
?>
результат будет вот такой:
Код:
Array
(
    [0] => 2010-08-14
    [1] => 2010
    [2] => 08
    [3] => 14
)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху