Я бы преобразовал строку типа «22 июля 2011 года в 7:42» в другом формате. Я попытался использовать функции strtotime и date_parse_from_format, но в этом случае они не работают правильно. Я полагаю, что причиной этой проблемы может быть подстрока «in».
Как преобразовать этот формат в тип даты или в метку времени?
Я полагаю, что причиной этой проблемы может быть подстрока «in».
Насколько я вижу, вы правы. По крайней мере, i
является идентификатором («Минуты с ведущими нулями»), поэтому вы должны избегать его.
var_dump(date_parse_from_format('F d, Y \i\ng:ia', $string));
См. date()
Пример # 2
Эй, попробуйте следующие решения
print $date = "July 22, 2011 in 7:42pm"; $date = date_parse_from_format('F j, Y * h:iA', $date); print '<pre>'; print_r($date);
Я бы преобразовал строку типа «22 июля 2011 года в 7:42» в другом формате.
Статический метод DateTime::createFromFormat()
( документация ) (или псевдоним date_create_from_format()
) является предпочтительным. Ниже приведен пример его использования для ваших нужд, но не забудьте принять информацию, содержащуюся в документации.
Как преобразовать этот формат в тип даты или в метку времени?
Ниже приведен базовый пример. Для доступных символов форматирования см. Страницу с date()
.
$subject = 'July 22, 2011 in 7:42pm'; $datetime = DateTime::createFromFormat('F d, Y \i\ng:ia', $subject); // Output as another format (2011-07-22 19:42:00) echo $datetime->format('Ymd H:i:s'); // Output as Unix timestamp (1311327720) echo $datetime->getTimestamp();