我正在创建PHP函数,它将以两种格式返回两个日期之间的差异: 2个月,3个星期,6天,3个小时。我曾尝试使用PHP DateTime类,但它只返回Months,Days和Hours,我找不到计算 Weeks 的方法。
这是我的功能:
public function DateTimeDifference($FromDate, $ToDate) {
$FromDate = new DateTime($FromDate);
$ToDate = new DateTime($ToDate);
$Interval = $FromDate->diff($ToDate);
$Difference["Hours"] = $Interval->h;
$Difference["Days"] = $Interval->d;
$Difference["Months"] = $Interval->m;
return $Difference;
}
现在,我需要$ Difference [" Weeks"]也包含在返回数据中。
编辑:我知道我可以将7天划分为几天并获得数周,但这并不是正确的结果。例如: 2个月,14天,3个小时 - 当我将 14天除以7时,我会得到: 2个月,2个星期,14天, 3小时,现在这不是同一时期。
答案 0 :(得分:8)
public function DateTimeDifference($FromDate, $ToDate) {
$FromDate = new DateTime($FromDate);
$ToDate = new DateTime($ToDate);
$Interval = $FromDate->diff($ToDate);
$Difference["Hours"] = $Interval->h;
$Difference["Weeks"] = floor($Interval->d/7);
$Difference["Days"] = $Interval->d % 7;
$Difference["Months"] = $Interval->m;
return $Difference;
}