Php проверка 24-часового формата времени
Я разрешаю пользователям выбирать час из 00:00:00
to 23:00:00
и нужно проверить, отправляют ли они правильный формат. Есть ли регулярное выражение или функция php, которая проверяет 24-часовой формат, например HH:MM:SS
?
я нашел регулярное выражение примеры, но 24 часа я форумчанин всегда 00
в течение нескольких минут и секунд. Меняется только час.
18:00:00, 23:00:00, 01:00:00
5 ответов
это соответствует 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? Вы можете легко использовать PHPs 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!'
это работает как шарм для меня.
$time = "23:59:60";
preg_match("/^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/", $time)