我有一个系统来记录一些工人每天出勤到公司。
第二天早上6点开始实验室日更改,下一个工作周期失效。
示例:
January 30, 2018
Start: 6am.
End of day: January 31, 6am
January 31, 2018
Start: 6am
End of Day: February 1, 6am.
问题是:
¿我如何在PHP中的特定时间之前获取当前日期?
答案 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