【发布时间】:2015-03-25 04:22:10
【问题描述】:
我想计算两个日期之间有多少个月:
$from = new DateTime('2014-11-01 00:00:00');
$to = new DateTime('2014-12-01 00:00:00');
$diff = $from->diff($to);
echo $diff->m; // <-- 0
2014-11-01 00:00:00 和2014-12-01 00:00:00 之间的差应该正好是一个月吧?但是$diff->m 说 0。 diff->d 改为 30 天。
如果我对 2014-01-01 00:00:00 和 2014-02-01 00:00:00 尝试相同的操作,$diff->m 现在表示 1 个月,这是正确的。
我错过了什么吗?
编辑:
因为我只需要计算两个设置日期之间有多少个月,并且用户插入带有月份和年份的 from 和 to 日期(12/2014 ),对我来说最好的解决方案就是增加 to 日期:
// user inserts
// from: 11/2014
// to: 12/2014
$from = new DateTime('2014-11-01');
$to = new DateTime('2014-12-15');
$diff = $from->diff($to);
echo $diff->m // outputs 1
感谢 STLMikey 为我提供答案! ;)
【问题讨论】: