简体   繁体   English

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

[英]Calculate difference between two date in DATE_RFC2822 format

i have to calculat e the difference between two date in this format: 我必须以这种格式calculat两个日期之间的差:

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

But i can't use date_diff() function..how can i do that? 但是我不能使用date_diff()函数。我该怎么做?

With this code 有了这个代码

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

I get this: 我得到这个:

Catchable fatal error: Object of class DateInterval could not be converted to string in blablabla 可捕获的致命错误:blablabla中类DateInterval的对象无法转换为字符串

[EDIT] it won't work..if i use this i get always 0 minutes [编辑]它不起作用..如果我使用它,我总是得到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'); ?>

The date_diff() function accepts DateTime objects and returns a DateInterval object: 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');

Note that this is the procedural style, you can also use the object oriented style if you prefer: 请注意,这是程序样式,如果您愿意,也可以使用面向对象的样式:

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

You could just parse the date before using date_diff: 您可以在使用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);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM