RSS pubDate未通过验证
我有一个字符串日期,我想在PHP中将其转换为RSS pubDate。RSS pubDate未通过验证
<?php echo date('r',strtotime('14/10/2015 2:58:27 a.m.'));?>
但上面的是给我六十年代的一些野生的结果。
在这种情况下'r'是不够的吗?我需要做一些奇特的正则表达式来匹配我的字符串吗?
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
现场演示
由于a.m的格式不正确,我猜测OP代码无法正常工作,但这只是一种猜测,因为我没有对它进行测试。 –
您的旧解决方案工作的方式。 –
@PaulCrovella好吧,很高兴知道,tks。 –
你需要告诉PHP的日期是不是在YYYY-MM-DD格式(或MM-DD -yyyy)所以strtotime可以处理它。
尝试
<?php echo date('r',strtotime('14/10/2015 2:58:27 a.m.' . 'GMT'));?>
这对我不起作用。我得到相同的结果。你是否改变了添加GMT参数? –
你需要一个特定日期或只是当前的日期? –
一个特定的日期,将以类似于上面的字符串形式出现:) –