我有一个字符串日期,我想在PHP中转换为RSS pubDate。
<?php echo date('r',strtotime('14/10/2015 2:58:27 a.m.'));?>
但上述情况在六十年代给了我一些疯狂的结果。
在这种情况下'r'不够吗?我需要做一些花哨的正则表达式来匹配我的字符串吗?
答案 0 :(得分:1)
Rss pubDate
使用RFC 2822标准。使用DateTime class并利用预定义常量DateTime::RSS
<?php
date_default_timezone_set("Europe/Lisbon");
$raw = "14/10/2015 2:58:27 a.m.";
$raw = str_replace(".", "", $raw); //am/pm
if(strpos($raw,'am') !== false){ $ampm = "a";}else{$ampm = "A";}
$time = DateTime::createFromFormat("d/m/Y g:i:s $ampm", $raw);
echo $time->format(DateTime::RSS);
//Wed, 14 Oct 2015 02:58:27 +0000
?>
P.S。:将default_timezone
更改为您的http://php.net/manual/en/timezones.php
现场演示
答案 1 :(得分:0)
你需要告诉php日期不是yyyy-mm-dd格式(或mm-dd-yyyy)所以strtotime可以处理它。
尝试
<?php echo date('r',strtotime('14/10/2015 2:58:27 a.m.' . 'GMT'));?>