如何从彼此中减去2个日期?

Ada*_*dam 0 php time date mktime

我想从今天的日期减去将来的日期,我希望它显示目标日期之前的日,小时和分钟.

这是我的代码

<?php

date_default_timezone_set('Europe/London');

$format = "h:i d";
$date = date($format);
$target = date($format, mktime(0,0,0,12,8,2011));

echo date($format, $target-$date);

?>
Run Code Online (Sandbox Code Playgroud)

亲切的问候,亚当

Ond*_*ták 5

不要date用于操作,它用于显示日期.而是减去2个时间戳:

...
$date = mktime(now...);
$target = mktime(0,0,0,12,8,2011);

echo date($format, $target - $date);
Run Code Online (Sandbox Code Playgroud)

但是你必须意识到时间戳始于1970年并在2038年结束,因此,例如,2011年 - 2007年= 1974年.

在你的情况下更合适的将是date_diff@Kerrek SB在评论中建议的.

示例(来自php.net):

$datetime1 = date_create('2009-10-11');
$datetime2 = date_create('2009-10-13');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a days'); // +2 days
Run Code Online (Sandbox Code Playgroud)