使用 PHP strtotime() 函数


Using PHP strtotime() function

我在不同的网站上收到一个外部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";提供输出。