我的"日期时间差异代码"我遇到了问题:
$timeStart = new DateTime('2015-11-28');
$timeEnd = new DateTime('2016-11-28');
$interval = $timeEnd->diff($timeStart);
$result = $interval->format('%d');
echo $result." day(s)";
当我想象$ result时,PHP显示我0.但是在这两个日期之间有超过0天的日子......
php不计算两个不在同一年的日期之间的差异吗?
答案 0 :(得分:3)
因为有0天的差异。然而,有1年的差异。如果您将%d
更改为%y
,则会获得1.因此,相差1年零,0个月和0天。
您可以使用的是days
上的DateInterval
属性,因此:
$result = $interval->days;
答案 1 :(得分:1)
好的,我知道已经给出了答案。但下面只是一点解释。
事实上,当您有固定的时间(年,月,日,小时)时,DateInterval::format()确实有意义,如下所示:
DateInterval::days
这不是你的情况!
在哪里你有相对时间(2016-11-28与2015-11-28相关)。在这种特殊情况下,您需要自2015年11月28日以来的日期数量
这就是$start = new DateTime('2015-11-28');
$end = new DateTime('2016-12-28');
var_dump($end->diff($start)->days);
(DateTime :: diff()返回DateInterval对象)的原因:
skybox.position.x = camera.position.x; //Moving skybox with camera
skybox.position.z = camera.position.z; //Moving skybox with camera
skybox.position.y = camera.position.y; //Moving skybox with camera