PHP日期时间差异(小时,天,周,月)

时间:2017-08-14 19:55:51

标签: php datetime date-difference

我正在创建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小时,现在这不是同一时期。

1 个答案:

答案 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;
}