只是想仔细检查并确保我的思路正确。这个钩子每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
}
答案 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天。