2014-08-29 127 views
-2

在我的网站上,我输入的格式为TITLE#HH:MM-HH:MM#LOCATION。我可以用explode("#",...轻松地将它分成3个不同的数组键,并显示数据,但现在我正在创建一个函数来返回当前时间戳是否在“HH:MM-HH:MM”内。查看时间是否在格式范围内HH:MM-HH:MM

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

我该怎么做呢?我试图创建一些代码,但我不知道如何完成这个干净。

谢谢!

UPDATE -

 $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 
     } 
+0

即使只是以相同的格式格式化当前时间,然后进行字符串比较也可以在这里工作... – CBroe 2014-08-29 23:48:38

+0

那么我该怎么做呢? @Cbroe – 9kv 2014-08-30 00:10:12

+0

通过您的个人资料自称“PHP开发人员”,您需要问...? http://php.net/manual/en/function.date.php – CBroe 2014-08-30 00:25:58

回答

1

你可以用几种不同的方法做到这一点。就个人而言,我喜欢与​​类一起操作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!"; 
} 
+0

谢谢!为了将来的参考,我使用@ 1nflktd和@Cbroe代码的组合。我会在@ 1nflktd的代码中加入的一件事是,例如,您需要使用'if($ now-> format('U')> $ start ...'而不是'if($ now> .. .' – 9kv 2014-08-30 01:01:15

相关问题