首页 > 解决方案 > PHP:根据每月第二个星期四的时间范围做事

问题描述

我有一个快速且希望很容易回答的问题。

如何在 PHP 中构建以下逻辑:

例如:

if (date < 2ndThursofThisMonth_At6pm {  
    $meeting="Apr 9, 2020 18:00:00";
}
if (date > 2ndThursofThisMonth_At6pm {  
    echo "meeting happening now";
}
if (date > 2ndThursofThisMonth_At6:30pm {   
    $meeting="May 14, 2020 18:00:00";
}

标签: phpdatetime

解决方案


您可以使用strtotime的日期解析能力找到会议时间的时间戳,然后将当前时间戳(从 返回time())与它进行比较,以确定会议是在未来、现在还是过去(这种情况下我们需要查找下一次会议时间):

$second_thursday = strtotime('second thursday of this month 6pm');
$now = time();
if ($now < $second_thursday) {
    $meeting = date('Y-m-d H:i:s', $second_thursday);
}
elseif ($now <= $second_thursday + 1800) {
    $meeting = 'meeting happening now';
}
else {
    $meeting = date('Y-m-d H:i:s', strtotime('second thursday of next month 6pm'));
}
echo $meeting;

输出(截至 2020 年 3 月 4 日):

2020-04-09 18:00:00

3v4l.org 上的演示


推荐阅读