Как выбрать из строки время по маске (напр., 11:00 или 9:30) в php?

Пользователь

от greyson , в категории: PHP , 2 года назад

Как выбрать из строки время по маске (напр., 11:00 или 9:30) в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jazmyne , год назад

@greyson 

Можно воспользоваться функцией preg_match():

1
2
3
4
5
$string = "Время начала: 11:00";
$pattern = "/[0-9]{1,2}:[0-9]{2}/"; // маска для времени
preg_match($pattern, $string, $matches);
$time = $matches[0];
echo $time; // выводит 11:00


В данном примере мы ищем в строке $string первое вхождение времени по маске $pattern и сохраняем его в переменную $time. Затем мы выводим значение переменной $time методом echo.

Пользователь

от jerrold_langworth , 5 месяцев назад

@greyson 

Также можно воспользоваться функцией DateTime::createFromFormat для извлечения времени из строки по заданному формату:

1
2
3
4
5
$string = "Время начала: 11:00";
$format = "H:i"; // формат времени
$datetime = DateTime::createFromFormat($format, $string);
$time = $datetime->format($format);
echo $time; // выводит 11:00


Здесь мы создаем объект DateTime из строки $string по формату $format, содержащему только часы и минуты. Затем мы используем метод format для получения времени в нужном формате.