如何计算feedburner项目链接的年龄?

时间:2013-07-13 11:05:12

标签: php datetime rss feedburner

我正在开展一个项目来确定Feedburner Feed中列出的网址/帖子的年龄。我可以解析,并以这样的格式获取pubDate值:Sat, 13 Jul 2013 10:00:15 +0000

我想创建一个PHP脚本,从当前日期时间中减去原始日期时间。我已经创建了strtotime($item->pubDate),但我对时区感到困惑。该脚本必须与每个提要(可能在不同的时区)一起使用,并且脚本必须在每个时区都正常工作。

那么如何根据这些规格确定帖子的年龄?

1 个答案:

答案 0 :(得分:0)

您可以使用DateTime类,特别是静态方法`DateTime::createFromFormat()',如下所示: -

$dateStr = 'Sat, 13 Jul 2013 10:00:15 +0000';
$dateTime = \DateTime::createFromFormat('D, d M Y H:i:s O', $dateStr);
$dateTime->setTimezone(new \DateTimeZone('UTC'));
var_dump($dateTime);
$diff = $dateTime->diff(new \DateTime('now', new \DateTimeZone('UTC')));
var_dump($diff);

输出: -

object(DateTime)[1]
  public 'date' => string '2013-07-13 10:00:15' (length=19)
  public 'timezone_type' => int 3
  public 'timezone' => string 'UTC' (length=3)

object(DateInterval)[3]
  public 'y' => int 0
  public 'm' => int 0
  public 'd' => int 0
  public 'h' => int 22
  public 'i' => int 47
  public 's' => int 48
  public 'invert' => int 0
  public 'days' => int 0

如您所见,每个dateTime对象的时区都设置​​为UTC。 $diffDateInterval的一个实例,代表“now”与您收到的日期之间的差异。

您可以使用'DateInterval::format()'

以任何格式输出日期之间的差异