PHP 检查将时间范围与数组中的当前时间匹配


php check matched time range with current time within an array

我有一个包含时间范围的数组,时间范围有特定的视频,我要显示与当前时间匹配的视频

我创建了一个如下所示的变量,并分配给数组,任何人请帮助我从数组中过滤当前时间的视频

例如,如果服务器时间为 2012-06-08 14:45:10 这个我需要显示视频 2

$d1 = "2012-06-08 14:26:39";
$video1='http://video-js.zencoder.com/oceans-clip.mp4';
$d2 = "2012-06-08 14:39:39";
$video2='http://video-js.zencoder.com/oceans-clip.mp4';
$d3 = "2012-06-08 14:56:10";
$cc=array(
1=>array($d,$d2,$video1),
2=>array($d2,$d3,$video2)
);
//get current time
$ctime=date('Y-m-d H:i:s',time());
//need to check matched array element for current time within above array date ranges
//Ex - if the server time is  2012-06-08 14:45:10 this need show video 2
你可以

试试这个

$showvideo = "";
for ($i = 1; $i <= sizeof($cc); $i++) {
    $video = $cc[$i];
    if ($ctime >= $video[0] && $ctime <= $video[1]) {
        $showvideo = $video[2];
        break;
    }
}
if ($showvideo == "") {
    // Error
}

基本上PHP允许您比较日期,因此只需通过数组并比较每个日期即可查看您拥有的日期是否在两者之间。

您需要为每个视频分配一个时间范围,然后您可以根据时间输入查找正确的视频

例如

$ctime=date('Y-m-d H:i:s',time());
$video1=array("http://video-js.zencoder.com/oceans-clip.mp4","2012-06-08 14:26:39","2012-06-08 14:39:39")
if ($ctime >= $video1[2]) && ($ctime <= $video1[3]) { echo $video1[1]; }

我相信这应该可以解决您的问题