PHP DateTime :: diff问题与DateTime :: format

时间:2013-02-12 17:58:17

标签: php datetime-format

当我尝试使用日常和时间的普通PHP代码(d,Y,m等)格式化日期差异时,它只输出字母而不是值。这只是在我格式化DateTime :: diff时。它只适用于简单的DateTime对象。

此:

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

输出“d天前”。

我知道如果我用%a替换d,它将输出这是多少天前。我想知道输出秒,分钟甚至数年的其他角色是什么。

提前致谢!

1 个答案:

答案 0 :(得分: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