$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天。那里有什么问题?
答案 0 :(得分:3)
数字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天
答案 1 :(得分:1)
请注意,date_diff($end,$now);
会返回DateInterval,并且它有自己的格式:
a = DateTime :: diff()或(未知)
的总天数
并且
d =天,数字
您在一个月内无法45 days
因此基本上使用%d
或%m month %d days
45 days //or
1 month 15 days