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

时间:2016-04-29 10:36:40

标签: php date

我必须calculat这种格式的两个日期之间的差异:

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'); ?>

2 个答案:

答案 0 :(得分:1)

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');

答案 1 :(得分:0)

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

Collapse By default
相关问题