PHP用于计算两个日期之间的办公时间

Sjw*_*ies 7 php time

我们运行的服务基于2个工作日的SLA,因此如果请求在星期一下午1点提交,则应在星期三下午1点之前完成.

所以在数据库中我有两个MySQL时间戳YYYY/MM/DD HH:MM:SS,并且需要一些方法来计算两个日期之间的工作时间,基于上午9点到下午5点的办公时间.

谁能给我任何想法?

Gre*_*ill 0

一般来说,给定时间戳 A 和 B,其中 A 是开始时间:

  • 确定 A 和 B 之间的天数(有简单的方法可以做到这一点),称之为 D
  • 如果时间戳 B 的 HH:MM:SS 大于或等于 A 的 HH:MM:SS,则添加时间差 H,得出 D(天)+ H(时间)
  • 如果时间戳 B 的 HH:MM:SS 小于 A 的 HH:MM:SS,则从 D 中减去 1,并加上 8 小时减去时间差 H,得到 D - 1(天)+ 8(小时)- H

在您的示例中,如果 A 为周一下午 1 点,B 为周三下午 1 点,则 D 为 2。由于时间相同,H 为 0,因此总差为 2 个工作日。

如果 B 是星期三下午 3 点,那么总时差将是 2 天加 2 小时。

如果 B 是星期三上午 9 点,则总差异将为 1 天加 4 小时。

上述方法不适用于周末或节假日,因此您必须进行适当的修改。