/** * 根据开始时间 和结束时间 循环生成期间内的时间信息 * @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 ; } }