我想从今天的日期减去将来的日期,我希望它显示目标日期之前的日期,小时和分钟。
这是我的代码
<?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);
?>
亲切的问候, 亚当
答案 0 :(得分:5)
不要使用date
进行操作,而是用于显示日期。而是减去2个时间戳:
...
$date = mktime(now...);
$target = mktime(0,0,0,12,8,2011);
echo date($format, $target - $date);
但你必须意识到时间戳始于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
答案 1 :(得分:1)
也许这会对你有所帮助
<?php
$target = mktime (23, 34, 0, 9, 28, 2009);
$today = mktime();
$difference =($target-$today) ;
$days = $difference / 3600 / 24;
$difference = $difference - floor($days) * 3600 * 24;
$hours = $difference / 3600;
$difference = $difference - floor($hours) * 3600;
$minutes = $difference / 60;
echo "Days: ";
echo floor($days);
echo "<br />";
echo "Hours: ";
echo floor($hours);
echo "<br />";
echo "Minutes: ";
echo floor($minutes);
?>