给定任意俩个相差的七天的日期,输出两个日期之间的天数

  • A+
所属分类:PHP
<?php

/**
 * 给相差七天的两个日期,输出中间日期
 */

	$a = 2.28;
	$b = 3;
	// 日期a 分割日期
	$a_arr = check($a);
	$a_month = $a_arr['0'];
	$a_date = $a_arr['1'];
	// 日期b 分割日期
	$b_arr = check($b);
	$b_month = $b_arr['0'];
	$b_date = $b_arr['1'];

	if($a_month == $b_month){  //情况一   同一个月份
		$arr = Same_month($a_month, $a_date, $b_date);
	}else{ //情况二   同一个月份 非同一个月份
		$arr_b = fordate($b_month,$b_date);
		$arr_a = fordates($a_month, $a_date, $b_date);
		$arr = array_merge($arr_a, $arr_b);
	}
	var_dump($arr);

	/**
	  *拆分天数
	  */
	function check($val)
	{
		$arr = explode(".",$val);
		if (count($arr) == 2) {

		}else{
			echo $val."日期格式错误";die();
		}
		return $arr;
	}

// 情况1  下个月是2,3,4,5,6,7,8,9,10,11,12

	/** 
	  *循环输出下一个月的天数
	  */
	function fordate($month, $date)
	{
		$arr = [];
		for ($i=1; $i <= $date; $i++) { 
			$arr[] = $month.'.'.$i;
		}
		return $arr;
	}

	/**
	  *循环输出当月的天数
	  */
	function fordates($month, $date, $next_month_dates)
	{
		$months = [1,3,5,7,8,10,12];
		if (in_array($month, $months)) {
			$month_dates = 31;
		}elseif ($month == 2) {
			$month_dates = $date + (6 - $next_month_dates);
		}else{
			$month_dates = 30;
		}
		$arr = [];
		for ($i=$date; $i <= $month_dates; $i++) { 
			$arr[] = $month.'.'.$i;
		}
		return $arr;
	}

// 情况2  本月天数
	function Same_month($month, $date1, $date2)
	{
		$arr = [];
		for ($i=$date1; $i < $date2 ; $i++) { 
			$arr[] = $month.'.'.$i;
		}
		return $arr;
	}

 

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信小程序
  • 我的微信小程序扫一扫
  • weinxin
Lion

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: