字符串替换日期&时间

时间:2014-10-10 07:20:07

标签: php string date time replace

我的XML行如下所示:

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

我抓住它然后把它拿出来:

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

输出如下:

星期四,2014年10月9日22:59:16 +0200

但我需要的应该是这样的(是的,有趣的'%3A'取代':')

2014年10月9日的 + 22 %3A 59 %3A 16

我认为字符串替换可以做到这一点,请有人帮我查一下! 谢谢!

2 个答案:

答案 0 :(得分:2)

编辑:使用@ 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

答案 1 :(得分:1)

在这种情况下,您可以使用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