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

时间:2012-06-08 19:04:53

标签: php arrays date multidimensional-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

2 个答案:

答案 0 :(得分:1)

你可以试试这个

$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允许你比较日期,所以只需通过数组并比较每个日期,看看你的日期是否介于两者之间。

答案 1 :(得分:1)

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

例如

$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]; }

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