Я ищу, чтобы извлечь время из этой строкисинтаксического анализа строки времени
Tue, 13 Mar 2012 04:48:34 -0400
Я знаю, что StrToTime может работать, но я не уверен в implemation о том, чтобы просто получить 04:48:34
из этой строки
благодаря
Я ищу, чтобы извлечь время из этой строкисинтаксического анализа строки времени
Tue, 13 Mar 2012 04:48:34 -0400
Я знаю, что StrToTime может работать, но я не уверен в implemation о том, чтобы просто получить 04:48:34
из этой строки
благодаря
Вы можете использовать date_parse, который возвращает массив с частями даты/времени в виде отдельных элементов. Затем вы можете извлечь временные части, например.
$dateString = 'Tue, 13 Mar 2012 04:48:34 -0400';
$dateParts = date_parse($dateString);
$timeString = $dateParts['hour'] . ':' . $dateParts['minute'] . ':' . $dateParts['second'];
Или лучше, если у вас есть PHP5.3, вы можете использовать DateTime class
$dateString = 'Tue, 13 Mar 2012 04:48:34 -0400';
$date = new DateTime($dateString);
echo $date->format('H:i:s');
отлично! не знал о классе DateTime в php 5.3+ – Autolycus
, знаете ли вы, знаете ли вы, используя этот класс, я могу найти следующий час шкафа. Как в этом случае это будет 5 – Autolycus
@Autolycus Зависит от того, что вы подразумеваете под «ближайшим ближайшим часом». Это звучит как еще один вопрос для меня. Дайте ему пойти и задать другой вопрос, если вы столкнулись с проблемой. – liquorvicar
Try
echo date('H:i:s',strtotime($str));
Может быть, вы можете использовать функцию sscanf?
Вот «домашний» решение, которое работает:
$r = sscanf ('Tue, 13 Mar 2012 04:48:34 -0400' , '%s %d %s %d %02d:%02d:%02d %d');
if (count($r)==7) {
$hh = intval($r[4]);
$mn = intval($r[5]);
$ss = intval($r[6]);
if (
($hh>=0) && ($hh<=23) &&
($mn>=0) && ($mn<=59) &&
($ss>=0) && ($ss<=59)
) {
/* Time is valid, use it
*/
}
}
Не знаю, существуют ли конкретный метод, который может сделать это для вас, но с верхней части моей головы:
echo date('H:m:s');
Это вернет текущий час: минуты: секунды, так как вы не проходите в отметке времени Unix (второй параметр для даты). – MetalFrog
Что делать, если часовой пояс - это нечто иное, чем «-0400»? Вы действительно просто хотите игнорировать часовой пояс? –
99.999% веб-разработчиков не заботятся о часовом поясе (нет ничего о вас Autolycus). Они * могут * ухаживать только в том случае, если сайт становится международным ... –