PHP中的多个运算符如果语句

时间:2016-06-21 12:30:56

标签: php

只是想仔细检查并确保我的思路正确。这个钩子每48小时运行一次,所以我需要检查今天或明天是否发生了一个事件。

 $now = date('Y/m/d');
$today = explode("/", $now);

事件开始日期具有相同的格式,但值会有所不同,并以相同的方式存储。

if ( $today[1] == $eventDate[1] &&
(intval($today[2]) == (intval($eventDate[2]-1)) || (intval($today[2]) == intval($eventDate[2])-2))) {

//run code

}

1 个答案:

答案 0 :(得分:0)

在我看来,您应该考虑使用DateTime个对象:

$today = new \DateTime();
$eventDateTime = \DateTime::createFromFormat('Y/m/d', $eventDate);

if ($today->format('d-m-Y') === $eventDateTime->format('d-m-Y')) {
    ...
}

如果你想检查今天或明天发生的事件,你可以这样做:

$start = new \DateTime();
$start->setTime(0,0,0);
$end = new \DateTime();
$end->add(new \DateInterval('P1D'));
$end->setTime(23,59,59);
$eventDateTime = \DateTime::createFromFormat('Y/m/d', $eventDate);

if ($eventDateTime >= $start && $eventDateTime <= $end) {
    ...
}

这样您可以检查某个日期是否在某段时间内。在这里,我在当前日期添加了1天,但如果您愿意,可以调整代码并设置超过1天。