我希望得到前一个'早上4点'的时间(标准时间()格式)。
我的第一次尝试是:mktime(4,0,0)
。
这适用于一天中的每个时间,但在00:00和04:00之间,因为它会给出下一个'4 am'的时间。
答案 0 :(得分:4)
$now = new DateTime();
$fourAm = new DateTime('today 4am');
if ($now < $fourAm) {
$time = strtotime('yesterday 4am');
} else {
$time = $fourAm->getTimestamp();
}
$time
是“最后4点”的时间戳,无论当前是什么时间。
修改强>
您也可以在没有DateTime
对象的情况下执行此操作,但我喜欢这套课程,所以我通常会找到任何理由来使用它们。 :-P
$now = time();
$fourAm = strtotime('today 4am');
if ($now < $fourAm) {
$time = strtotime('yesterday 4am');
} else {
$time = $fourAm;
}
答案 1 :(得分:2)
如果您创建的时间是将来,则减去一天。
答案 2 :(得分:0)
$date = strtotime('yesterday 4am');