最近在做微影院的PHP开发,影院嘛,自然一个节目要在多个时间周期内使用。
假设有一部电影,安排的播放时间为:
2016-05-08 10:00:00 – 2016-05-08 11:45:00
2016-05-09 10:00:00 – 2016-05-09 11:45:00
2016-05-10 10:00:00 – 2016-05-10 11:45:00
2016-05-11 10:00:00 – 2016-05-11 11:45:00
2016-05-12 10:00:00 – 2016-05-12 11:45:00
然后我要显示3个大项目,一个为今天,二为明天,三为之后
如果今天/明天不存在,直接显示之后的全部
附带上个方法:
/**
* 根据节目信息进行时间序列化整理
* @param unknown $changci
* @return string|Ambigous <multitype:, multitype:unknown , multitype:unknown number >
*/
private function ChangCiData($changci){
if (empty($changci)){
return false;
}
$data=array(); #-对时间进行一个关联
date_default_timezone_set(‘Asia/Shanghai’); #-定义时区
for($i=0;$i<3;$i++){
$t = $i+1; #-日期默认+1
$time = mktime(0,0,0,date(“m”),date(“d”)+$t,date(“Y”)); #-获取时间,默认=第二天
for($o=0;$o<count($changci);$o++){ #-循环节目信息
if($i==2){ #-如果为第三次的关联
if($changci[$o][‘kaishi_time’]>($time-86000)){
#-开始时间全部就要求大于当前的
#-不过还有可能是有些小于第三天但又大于第二天的 所以条件修改为>第三天的时间-86000即大于2天后的
$data[$i][]=array(
‘time’ => $time, #-获取时间显示
‘yingpian’ => $changci[$o] #-获取详细信息
);
echo date(“Y-m-d”,$changci[$o][‘kaishi_time’]).”=jiemuid=”.$changci[$o][‘id’].”<br>”;
}
} else if($i==1){
if($changci[$o][‘kaishi_time’]<$time && $changci[$o][‘kaishi_time’]>($time-86000)){
#-如果开场的时间小于第二天的0点又大于前一天的
$data[$i][]=array(
‘time’ => $time, #-获取时间显示
‘yingpian’ => $changci[$o] #-获取详细信息
);
echo date(“Y-m-d”,$changci[$o][‘kaishi_time’]).”=jiemuid=”.$changci[$o][‘id’].”<br>”;
}
} else {
if($changci[$o][‘kaishi_time’]<$time){
#-如果开场的时间小于第二天的0点
$data[$i][]=array(
‘time’ => $time, #-获取时间显示
‘yingpian’ => $changci[$o] #-获取详细信息
);
echo date(“Y-m-d”,$changci[$o][‘kaishi_time’]).”=jiemuid=”.$changci[$o][‘id’].”<br>”;
}
}
}
}
return $data;
}
关于作者