我的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
我认为字符串替换可以做到这一点,请有人帮我查一下! 谢谢!
答案 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