我有一个让我疯狂的问题, 我的任务是从API解析日期并将其转换为RFC 822格式,因为即将发布的Feed会出现验证错误
来自API的日期如下:
<review created="2012-10-23 14:51:12.0">
我在通过substr
进行的描述中有一个日期$xtime = substr($review["created"], 0, 16);
$jahr = substr($xtime,0,4);
$mon = substr($xtime,5,2);
$tag = substr($xtime,8,2);
$datneu = $tag.'.'.$mon.'.'.$jahr;
此日期将呈现为:
23.10.2012
对于我制作的pubdate
$xtime = substr($review["created"], 0, 16);
$xxl = $pubtime . " GMT";
呈现如:
2012-10-23 14:51:12 GMT
W3C feed验证器说它不验证,因为pubDate不是RFC 822格式
Sorry
This feed does not validate.
line 10, column 38: pubDate must be an RFC-822 date-time: 2012-10-29 11:51:23 GMT (5 occurrences) [help]
<pubDate>2012-10-29 11:51:23 GMT</pubDate>
它需要看起来像:
<pubDate>Wed, 02 Oct 2002 13:00:00 GMT</pubDate>
我可以想象一个hacky解决方案,表达像“if(month = 01){actualmonth = Jan}”但我真的不知道如何对这些日子做同样的事情,
我对PHP也不太满意,但我需要尽快解决这个问题。
希望你能帮助我,必须有一个我在类似问题上找不到的解决方案
约翰
答案 0 :(得分:3)
查看DateTime::createFromFormat()
或date_create_from_format
。
http://fr2.php.net/manual/en/datetime.createfromformat.php
<?php
$date = date_create_from_format('Y-m-d H:i:s', '2012-10-23 14:51:12.0');
echo date_format($date, 'D, d M Y H:i:s');
?>
查看可能的日期格式
http://fr2.php.net/manual/en/function.date.php
编辑:修复
答案 1 :(得分:1)
您好,在PHP中,您应该看一下:function date
答案 2 :(得分:1)
yeaaaaah 为我工作,太棒了!
对于其他人来说,我的案例的确切解决方案是
$before = "2012-10-23 14:51:12.0";
$timetwo = substr($before, 0, 16);
$timethree = date_create_from_format('Y-m-d H:i:s', $timetwo);
$timefinal = date_format(timethree, 'D, d M Y H:i:s');
$after = $timefinal . ' GMT' ;
$after = "Mon, 23 Oct 2012 14:51:12 GMT";
非常感谢你的快速答案!
答案 3 :(得分:0)
这对我有用....
date("r", strtotime($yourdate))
$ yourdate 2013-10-27 我 Sun,2013年10月27日00:00:00 +0000