跳至正文

php两个日期之间的相关运算函数

  • 后端

两个日期之间的所有日期,生成一维数组

function prDates($start,$end){
	$dt_start = strtotime($start);
	$dt_end = strtotime($end);
	while ($dt_start<$dt_end){
		$day_arr[] = array(
			'day'=>date('Y-m-d',$dt_start)
		);
		$dt_start = strtotime('+1 day',$dt_start);
	}
return $day_arr;
}
$in_date = "2018-09-18";
$out_date = "2018-10-03";
$days = prDates($in_date, $out_date);

查询星期几,获取工作日和休息日不同房价,最后获得时间段内的总单价

$price_sum = 0;
foreach($days as $value){
	$week = date('w', strtotime($value['day']));
	if($week > 0 && $week < 5){
		$price = $room['price_work'];
	} else {
		$price = $room['price_holiday'];
	}
	$price_sum += $price;
}

求两个日期之间相差的天数

/**
* 求两个日期之间相差的天数
* (针对1970年1月1日之后,求之前可以采用泰勒公式)
* @param string $day1
* @param string $day2
* @return number
*/
function diffBetweenTwoDays ($day1, $day2){
	$second1 = strtotime($day1);
	$second2 = strtotime($day2);

	if ($second1 < $second2) {
		$tmp = $second2;
		$second2 = $second1;
		$second1 = $tmp;
	}
	return ($second1 - $second2) / 86400;
}
$in_date = "2018-09-18";
$out_date = "2018-10-03";
$diff = diffBetweenTwoDays($in_date, $out_date);