PHP DateTime::diff DateTime:格式问题


PHP DateTime::diff Issue with 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,它将输出多少天前的情况。我想知道还有哪些字符可以输出秒、分钟甚至年。

提前感谢!

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