【发布时间】:2017-08-14 19:55:51
【问题描述】:
我正在创建 PHP 函数,它将以以下格式返回两个日期之间的差异:2 个月、3 周、6 天、3 小时。我曾尝试使用 PHP DateTime 类,但它只返回月、日和小时,我找不到计算周数的方法。
这是我的功能:
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 小时,现在不是同一时期。
【问题讨论】:
-
有趣...一周有多少天?
-
有趣...如何从天除以 7 求模?
-
你甚至不需要使用模数,这是简单的数学运算。
-
@Andreas,我听说有些国家的计算机科学与数学分开教授。没关系)但是 (days-weeks*7) === (days - floor(days/7)*7) === days%7, 这是模数。
标签: php datetime date-difference