2011-12-01 131 views
0

我想從今天的日期減去未來的日期,我希望它顯示日期,小時和分鐘直到目標日期。我如何從兩個日期中減去兩個日期?

這裏是我的代碼

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

?> 

親切的問候, 亞當

+1

也許['date_diff'](http://www.php.net/manual/en /datetime.diff.php)... –

回答

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 
+0

它似乎仍然沒有工作。 – Adam

+0

編輯了一些更多的信息。 –

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

?>