我怎样才能获得前一个'早上4点'的时间?

时间:2012-02-06 15:28:59

标签: php time

我希望得到前一个'早上4点'的时间(标准时间()格式)。

我的第一次尝试是:mktime(4,0,0)

这适用于一天中的每个时间,但在00:00和04:00之间,因为它会给出下一个'4 am'的时间。

  • 那么我该如何解决这个问题?

3 个答案:

答案 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');