$end=date_create("2013-07-30 00:30:33");
$now=date_create();
$x=date_diff($end,$now);
echo $x->format('%a days');
当我使用 %a 时,它返回 45 天,这是正确的,当我使用 %d 时,它返回 15 天。那里有什么问题?
数字 15 是根据月差计算的天数。
例如:(来自http://www.php.net/manual/en/dateinterval.format.php)
<?php
$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);
// %a will output the total number of days.
echo $interval->format('%a total days')."\n";
// While %d will only output the number of days not already covered by the
// month.
echo $interval->format('%m month, %d days');
?>
上面的示例将输出:
共 31 天
1 个月零 0 天
请注意,date_diff($end,$now);
返回DateInterval并且它有自己的格式:
a = 作为 DateTime::diff() 或(未知)结果的总天数
和
d = 天数,数字
您不能45 days
在一个月内拥有,因此它基本上使用%d
或%m month %d days
45 days //or
1 month 15 days