Как преобразовать строку в дату - PullRequest
1 голос
/ 23 июля 2011

Я бы преобразовал строку типа «22 июля 2011 года в 7:42 вечера» в другой формат.Я пытался использовать функции strtotime и date_parse_from_format, но в этом случае они работают некорректно.Я полагаю, что причиной этой проблемы может быть подстрока "in".

Как преобразовать этот формат в тип Date или в метку времени?

Ответы [ 3 ]

3 голосов
/ 23 июля 2011

Полагаю, что причиной этой проблемы может быть подстрока "in".

Насколько я понимаю, вы правы.По крайней мере, i является самим идентификатором («Минуты с ведущими нулями»), поэтому вы должны избегать его.

var_dump(date_parse_from_format('F d, Y \i\n g:ia', $string));

См. date() Пример # 2

1 голос
/ 23 июля 2011

Эй, попробуйте следующие решения

print $date = "July 22, 2011 in 7:42pm";
$date = date_parse_from_format('F j, Y * h:iA', $date);
print '<pre>'; print_r($date);
0 голосов
/ 23 июля 2011

Я бы конвертировал строку типа «22 июля 2011 года в 7:42 вечера» в другой формат.

Статический метод DateTime::createFromFormat() (документация ) (или псевдоним date_create_from_format()) является предпочтительной.Ниже приведен пример его использования для ваших нужд, но не забудьте усвоить информацию, найденную в документации.

Как я могу преобразовать этот формат в тип Date или в метку времени?

Ниже приведен базовый пример.Доступные символы форматирования см. На справочной странице date() .

$subject = 'July 22, 2011 in 7:42pm';
$datetime = DateTime::createFromFormat('F d, Y \i\n g:ia', $subject);

// Output as another format (2011-07-22 19:42:00)
echo $datetime->format('Y-m-d H:i:s');

// Output as Unix timestamp (1311327720)
echo $datetime->getTimestamp();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...