以date_RFC2822格式计算两个日期之间的差异


Calculate difference between two date in DATE_RFC2822 format

我必须calculat e两个日期之间的差异,格式如下:

Fri, 29 Apr 2016 12:27:29 +0200

但是我不能使用date_diff()函数。。我该怎么做?

使用此代码

<?php
    $now = date(DATE_RFC2822);
    $now = date_create($now);
    $feed_date = date_create($feeds[$y-1]); //value of $feeds[$y-1] = Fri, 29 Apr 2016 12:27:29 +0200
    $feed_date = date_diff($now,$feed_date) ?>

我得到这个:

可捕获的致命错误:类DateInterval的对象不能是在blablabla 中转换为字符串

[编辑]它不起作用。。如果我使用这个,我总是0分钟

$now = date(DATE_RFC2822);
    $now = date_create($now);
    $feed_date = date_create($feeds[$y-1]);
    $data_post = date_diff($now,$feed_date);
     ?>
      <?php echo $data_post->format('%R%a minutes'); ?>

date_diff()函数接受DateTime对象并返回一个DateInterval对象:

$datetime1 = date_create('Fri, 29 Apr 2016 12:27:29 +0200');
$datetime2 = date_create('Sat, 30 Apr 2016 12:27:29 +0200');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days');

请注意,这是过程式风格,如果您喜欢,也可以使用面向对象的风格:

$datetime1 = new DateTime('Fri, 29 Apr 2016 12:27:29 +0200');
$datetime2 = new DateTime('Sat, 30 Apr 2016 12:27:29 +0200');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

您可以在使用date_diff:之前解析日期

$date1 = date_create("Fri, 22 Apr 2016 12:27:29 +0200");
$date2 = date_create("Fri, 29 Apr 2016 12:27:29 +0200");
$diff  = date_diff($date1, $date2);