Дата замены строки & amp; Время

строка моего XML выглядит так:

<observation_time_rfc822>Thu, 09 Oct 2014 22:59:16 +0200</observation_time_rfc822>

Я хватаю это и выдаю

$ob_time= $xml->observation_time_rfc822;
echo $ob_time;

Вывод выглядит так:

Чт, 09 Окт 2014 22:59:16 +0200

Но то, что мне нужно, должно выглядеть так (да, забавный «% 3A» заменяет «:»)

2014-10-09+22% 3A59% 3A16

Я думаю, что замена строки может сделать это, пожалуйста, кто-то может помочь мне узнать!
Спасибо!

0

Решение

редактировать: Используйте решение @ Ghost, оно правильно обрабатывает смещение часового пояса.

Сначала вам нужно переформатировать дату. Вы делаете это, анализируя это с strtotime и отформатировать его с date функция. Эти «забавные замены% 3A» на самом деле являются символами в кодировке URL:

$date = date('Y-m-d H:i:s', strtotime($ob_time));
$date = urlencode($date); // 2014-10-09+20%3A59%3A16
2

Другие решения

Вы могли бы использовать DateTime класс в этом случае, затем используйте urlencode():

Пример:

$ob_time = (string) $xml->observation_time_rfc822;

$date = DateTime::createFromFormat('D, d M Y H:i:s O', $ob_time);
$real_date = $date->format('Y-m-d H:i:s');
echo urlencode($real_date); // 2014-10-09+22%3A59%3A16
1

По вопросам рекламы [email protected]