我想要计算一个php项目的两个日期之间的差异。如何计算两个日期之间的差异正确php
例如: 是什么六月的4月1日的第2次之间的区别?
计算至5 = 1个月第2个从4月2日的差
的第一方法。从5月2日到6月1日= 30天。 =>四月2日到6月1号= 1个月和30天
计算差值
的第二种方法,我们计数可为1个月。然后添加4月2日至30日(28日)以及6月(1日)的日期=> 1个月和29天。
我认为第一种方法是正确的,只是因为我想大多数人的计算这种方式。
所以刚开始我试图用日期时间:: DIFF()函数
function dateDiff($date1, $date2 = false) {
if (!$date2)
$date2 = date('Y-m-d');
$datetime1 = new DateTime($date1 , new DateTimeZone('EUROPE/Sofia'));
$datetime2 = new DateTime($date2 , new DateTimeZone('EUROPE/Sofia'));
$interval = $datetime1->diff($datetime2);
$y = $interval->format('%y');
$m = $interval->format('%m');
$d = $interval->format('%d');
return $y . " " . $m . " " . $d;
}
但我注意到它没有正确计算的差异。 “2015年2月3日”之间的差异,“2015年4月2日”应该是1个月和30天,(02-03至03-03 = 1个月。然后我们计算的天休息04-02,它们是30),BUT的差异计算出它作为1个月和27天(I估计是计算由我上述的第二方法中的差异)。因此它要么计算错误,要么第二种方法是正确的计算方法。
但是 让我们来看看这个例子: 2015-05-01和2015-03-31(这次我们倒退了)。差异返回1个月区别,我认为应该是1个月和1天。
而且2015年5月1日和2015年2月28日之间的差异应该是2个月1天,但DIFF函数返回2个月3天。
那么,哪个是计算两个日期差异的正确方法呢? DateTime :: diff()是否正确计算?有没有办法通过第一种方法计算两个日期之间的差异。
https://github.com/fightbulc/moment.php –