首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RSS pubDate验证失败

RSS pubDate验证失败
EN

Stack Overflow用户
提问于 2015-10-14 03:20:18
回答 2查看 245关注 0票数 0

我有一个字符串日期,我想在pubDate中转换为RSS。

<?php echo date('r',strtotime('14/10/2015 2:58:27 a.m.'));?>

但以上这些都给了我上世纪六十年代的一些疯狂的结果。

在这种情况下,'r‘还不够吗?我需要做一些花哨的调整来匹配我的字符串吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-14 03:36:08

Rss pubDate使用RFC 2822标准。使用DateTime类并利用预定义的常量DateTime::RSS

代码语言:javascript
复制
<?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改为yours http://php.net/manual/en/timezones.php

现场演示

https://eval.in/450161

票数 1
EN

Stack Overflow用户

发布于 2015-10-14 03:43:04

您需要告诉php日期不是yyyy格式(或者mm),所以strtotime可以处理它。

试一试

代码语言:javascript
复制
<?php echo date('r',strtotime('14/10/2015 2:58:27 a.m.' . 'GMT'));?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33116068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档