查找时间是否在HH:MM-HH:MM格式的范围内


Find if time is within range in format HH:MM-HH:MM

在我的网站上,我有TITLE#HH:MM-HH:MM#LOCATION格式的条目。我可以用explode("#",...轻松地将其拆分为3个不同的数组键,并显示数据,但现在我正在创建一个函数,以返回当前时间戳是否在"HH:MM-HH:MM"内。

HH:MM-HH:MM的格式为12:20-13:10,其中第一时间为事件的开始时间,第二时间为事件结束时间。我正在尝试检测页面加载和调用time()的时间是否在12:20-13:10内。

我该怎么做?我尝试过创建一些代码,但我不确定如何干净地完成这项工作。

谢谢!

更新 -

        $tEvent = explode("-", $arr[1]);
        $now = new DateTime(date("Y-m-d H:i:s",$time), new DateTimeZone('America/Detroit'));
        $start = new DateTime($tEvent[0], new DateTimeZone('America/Detroit'));
        $end = new DateTime($tEvent[1], new DateTimeZone('America/Detroit'));
        if ($now->format('U') >= $start->format('U') && $now->format('U') <= $end->format('U')) {
            //within time
        }

您可以使用几种不同的方法来完成此操作。就我个人而言,我喜欢使用Datetime类在php中操作日期。

$timeEvent = "12:20-13:10"; // your string with start and end of the event
$tEvent = explode("-", $timeEvent); // split in 2 (0 is start, 1 is end)
$now = new Datetime("NOW"); // gets the actual date
$start = new Datetime($tEvent[0]); // create datetime object with start date
$end = new Datetime($tEvent[1]); // create datetime object with end date
if ( $now > $start && $now < $end ) // check if now is between start and end
{
    echo "It's event time!";
}