Intereting Posts

Php, подтверждающий формат 24-часового времени

Я разрешаю пользователям выбирать час с 00:00:00 до 23:00:00 и вам нужно проверить, соответствуют ли они правильный формат. Существует ли регулярное выражение или функция php, которая проверяет 24-часовой формат, например HH:MM:SS ?

Я нашел несколько примеров регулярных выражений, но 24-часовое время, которое я проверяю, всегда установлено на 00 минут и секунд. Только час меняется.

Например

 18:00:00, 23:00:00, 01:00:00 

Это соответствует 24-часовому времени, включая секунды

 ([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9] 

Если вы хотите только 00 минут и секунд, то

 ([01]?[0-9]|2[0-3]):00:00 

Здесь его готовый образец готов к использованию.

 $myTime = '23:00:00'; $time = preg_match('#^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$#', $myTime); if ( $time == 1 ) { // make a error! } else { // make a error! } 

Попробуй это

 $time="23:00:00"; preg_match('#^([01]?[0-9]|2[0-3]):[0-5][0-9](:[0-5][0-9])?$#', $time); 

Это RegEx? Вы можете легко использовать PHP strtotime strtotime для проверки дат и времени (также работает без даты). strtotime возвращает false ( -1 до PHP 5.1), если данное время недействительно. Поэтому не забудьте использовать операнд === !

 if (strtotime("12:13") === false) { echo("Wrong Time!"); } // Echos nothing if (strtotime("19:45") === false) { echo("Wrong Time!"); } // Echos nothing if (strtotime("17:62") === false) { echo("Wrong Time!"); } // Echos 'Wrong Time!'