2013-02-12 235 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