Доброе утро всем.
Какое-то время я искал регулярное выражение для проверки формата даты и времени, дд/мм/гггг чч:мм или дд-мм-гггг чч:мм или подобное, но те, которые я нашел, были неполными или лишь частично соответствовали условия или другие форматы даты.
Я оставляю вам базу, с которой я делаю тесты. В настоящее время действительно только для дат:
( https://regex101.com/r/yVN3p2/1 )
^([0][1-9]|[12][0-9]|3[01])(\/|-)([0][1-9]|[1][0-2])\2(\d{4})(\s)([0-1][1-9]|[2][0-3])(:)([0-5][0-9])$
Взяв за основу регулярное выражение из вопроса, мы можем создать следующие проверки:
Дата: дд/мм/гггг или дд-мм-гггг
https://regex101.com/r/yVN3p2/7
Дата, часы и минуты: дд/мм/гггг чч:мм или дд-мм-гггг чч:мм
https://regex101.com/r/yVN3p2/9
Дата, час, мин, сек: дд/мм/гггг чч:мм:сс или дд-мм-гггг чч:мм:сс
https://regex101.com/r/yVN3p2/10
Пример проверки с помощью PHP может быть следующим
Я сделал 2 регулярных выражения, которые проверяют даты, они улучшены, ниже я оставляю больше документации.
Проверка даты в формате: ГГГГ-ММ-ДД, это регулярное выражение не допускает ошибочных дат, таких как 30 и 31 февраля или 29 февраля в году, который не был или будет скачкообразным:
Проверка даты в формате: ГГГГ-ММ-ДДЧЧ:ММ:СС, это регулярное выражение не допускает ошибочных дат, таких как 30 и 31 февраля или 29 февраля в году, который не был или будет високосным, формат часов - 24 часа :
Эти два регулярных выражения представляют собой комбинацию следующих регулярных выражений:
Проверка формата времени 24 часа без секунд:
Проверка формата времени 24 часа с секундами:
Проверка формата времени 12 часов без секунд:
Проверка формата времени 12 часов с секундами: