2013-02-12 179 views
3

當我試圖格式化日期和時間使用正常的PHP代碼(d,Y,m等)日期差異,它只是輸出字母,而不是值。這只是當我格式化一個DateTime :: diff。它適用於簡單的DateTime對象。PHP日期時間::差異問題與日期時間::格式

此:

$date1 = new DateTime('2000-01-01'); 
$date2= new DateTime('now'); 
$date=$date2->diff($date1); 
echo $date->format('d days ago'); 

輸出 「d天前」。

我知道如果我用%a替換d,它會在多少天前輸出這是。我想知道其他角色會輸出幾秒鐘,幾分鐘甚至幾年。

在此先感謝!

回答

7

DateTime :: diff()返回一個DateInterval對象。

例如:

<?php 

$date1 = new DateTime('2000-01-01'); 
$date2= new DateTime('now'); 
$interval=$date2->diff($date1); 
echo "Years: {$interval->y }\n"; 
echo "Months: {$interval->m }\n"; 
echo "Days: {$interval->d }\n"; 
echo "Hours: {$interval->h }\n"; 
echo "Mins: {$interval->i }\n"; 
echo "Secs: {$interval->s }\n"; 
echo $interval->format("%Y years, %m months, %d days, %H hours, %i minutes, %s seconds") . "\n"; 

將輸出:

Years: 13 
Months: 1 
Days: 11 
Hours: 13 
Mins: 14 
Secs: 44 
13 years, 1 months, 11 days, 13 hours, 21 minutes, 43 seconds 
+0

謝謝您的指點我朝着正確的方向!我稍後將對此進行試驗。 – msalihov 2013-02-12 19:25:02

+1

沒問題!我碰到類似的事情。很高興我能幫上忙。 – bigmandan 2013-02-12 19:26:11