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

如何在PHP中获取当前日期直到特定时间?,php,Php,我有一个系统记录一些工人每天到公司的出勤情况 当第二天早上6点时,劳动日发生变化,则下一个工作周期失效 示例: January 30, 2018 Start: 6am. End of day: January 31, 6am January 31, 2018 Start: 6am End of Day: February 1, 6am. 问题是: January 30, 2018 Start: 6am. End of day: January 31, 6am January 31, 201

我有一个系统记录一些工人每天到公司的出勤情况

当第二天早上6点时,劳动日发生变化,则下一个工作周期失效

示例:

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

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

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

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

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

您所要做的就是从两个时间戳中减去六个小时,尽管我不建议修改员工打卡时间的记录,因为a)这可能是非法的,b)这没有任何意义


如果您坚持这样做,只需这样做即可
$mydate-=60*60*6

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

$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=date('H',strottime($ts))<6?日期('Y-m-d',标准时间($ts)-(60*60*12)):日期('Y-m-d',标准时间($ts))

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

您的问题不清楚。你的实际问题是什么?@Phil我编辑过,想把一天的开始时间设置为每天早上6点,然后一天的结束时间设置为第二天早上6点我不会修改PHP日期系统,因为a)最简单的方法是zend API,b)你将来可能需要未修改的系统,我要做的是自己制作(或者提前6小时设置时区,但这同样是个糟糕的主意)听起来你想设置一个不同的时区,但你说的是“格式”让我困惑的是…你知道日期格式是什么,对吗?-无论如何,如果你有一个日期,你想知道日期,你可以从日期中读取一个变量的日期,然后检查小时,如果它是在早上6点之前偏移日期变量。编辑:你可以在函数或类中封装它。@Theraot,有些是这样的,因为现在我正在保存日、月在单独的变量中,我只知道系统将第30天的协助保存为第29天的上午5点35分,但我将其更改为60*60*24,因为如果12出现错误,则更改小时