/**
* 根据开始时间 和结束时间 循环生成期间内的时间信息
* @param $format_date
* @return array
*/
function day_time_array($start_time,$end_time){
$day_list = array();
$day_key = ceil(diffBetweenTwoDays($start_time,$end_time)); //计算跨度天数
for ($i=1;$i<=$day_key;$i++ ){
//判断是否是第一天
$day_info = array("start_time"=>'0:00',"end_time"=>'23:59');
$key = $i-1 ;
$week_i = $key;
if($i==1){
$data_time = strtotime($start_time);
$day_info['start_time'] = date("H:i",strtotime($start_time));
}else{
$data_time = strtotime("$start_time +$week_i day");
}
//判断是否是最后一天 是否是第一天
if($i==$day_key){
$day_info['end_time'] = date("H:i",strtotime($end_time));
}
$day_info['day_time'] = date("Y-m-d",$data_time);
$day_info['start'] = strtotime($day_info['day_time'].' 00:00');
$day_info['end'] = strtotime($day_info['day_time'].' 23:59:59');
$day_info['week_time'] = $data_time;
$day_info['week'] = date("w",$data_time);
$day_list[] = $day_info;
}
return array("day_list"=>$day_list);
}
function diffBetweenTwoDays($day1, $day2)
{
$second1 = strtotime($day1);
$second2 = strtotime($day2);
if ($second1 < $second2) {
$tmp = $second2;
$second2 = $second1;
$second1 = $tmp;
}
//判断两个初始时间的天数 如果大于实际差天
$fomat_start = strtotime(date("Y-m-d",$second2)) ;
$fomat_end = strtotime(date("Y-m-d",$second1)) ;
$fomat_day = (($fomat_end - $fomat_start) / 86400)+1;
$real_day = ($second1 - $second2) / 86400;
if($fomat_day>$real_day){
return $fomat_day ;
}else{
return $real_day ;
}
}