如何在PHP中的特定时间之前获取当前日期?

时间:2018-01-30 03:25:22

标签: php

我有一个系统来记录一些工人每天出勤到公司。

第二天早上6点开始实验室日更改,下一个工作周期失效。

示例:

January 30, 2018
Start: 6am.
End of day: January 31, 6am

January 31, 2018
Start: 6am
End of Day: February 1, 6am.

问题是:

¿我如何在PHP中的特定时间之前获取当前日期?

2 个答案:

答案 0 :(得分:1)

您可以从时间戳开始。我在这里手动定义一个,但您可以使用任何日期字符串或任何可用的格式:

$ts = '2017-03-14 05:15';

并检查24小时格式小时值:

date('H', strtotime($ts))

如果该值小于您的边界,您可以减去任何大于6(白天开始边界)且小于23(避免夏令时错误)小时(以秒为单位)的值,以回滚到前一天。 .. 12是安全的:

$effectiveDate = date('H', strtotime($ts)) < 6 ? date('Y-m-d', strtotime($ts)-(60*60*12)) : date('Y-m-d', strtotime($ts))

在这种情况下,effectiveDate的值为2017-03-13

答案 1 :(得分:0)

你所要做的就是从两个时间戳中减去6个小时,虽然我不建议弄乱员工进出时间的记录,因为a)它可能是非法的,并且b)它没有&# 39;没有任何意义。

如果您坚持这一点,请执行此操作$mydate-= 60 * 60 * 6