我在不同的网站上收到一个外部RSS提要帖子,我注意到它们都有不同的发布日期格式。有些使用这样的格式:
2012-04-09T08:23:07Z
Fri, 06 Apr 2012 01:25:43 0000
仍然有很多格式,但我只是向您展示了两个示例。
现在,我希望所有内容都具有统一的格式,所以我使用 strtotime()。这是我的代码:
$date = "2012-04-09T08:23:07Z";
date( "F d, Y", strtotime( $date ) );
/* Result: April 09, 2012 */
我的问题是第二种格式Fri, 06 Apr 2012 01:25:43 0000
最后有一个 0000,这使得 strtotime() 的行为很奇怪。
$date = "Fri, 06 Apr 2012 01:25:43 0000";
date( "F d, Y", strtotime( $date ) );
/* Result: April 06, 0000 */
显然,结果应该是 2012 年 4 月 6 日。
我在这里的问题是,当 strtotime() 检测到最后具有 0000 的格式时,我怎么能不让它表现得很奇怪。知道怎么做吗?您的帮助将不胜感激!谢谢!:)
谢谢!
我很确定您有格式问题:
Fri, 06 Apr 2012 01:25:43 0000
注意到0000
?这不是巧合。原文大概是这样的:
Fri, 06 Apr 2012 01:25:43 +0000
这是用gmdate(DATE_RFC822)
生成的.在 URI 中,+
符号通常会转换为空格。我认为这是你的问题。
剥离"0000"怎么样?像这样:
$date=str_replace("0000", ", $date);
试试这个:
<?php
$date = "Fri, 06 Apr 2012 01:25:43 0000";
if (strtotime($date) !== false)
{
$timestamp = strtotime($date);
echo date( "F d, Y", $timestamp );
}
else
{
echo "error";
}
?>
对于 $date ="星期五, 06 四月 2012 01:25:43 0000";输出错误。
$date ="星期五, 06 四月 2012 01:25:43";提供输出。