欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP实现指定时间的n月之前的这一天的两种算法

程序员文章站 2022-05-16 22:07:58
...
/***根据$endtime,返回指定$monthes月之前的日*/function severalMonthAgo($endtime,$monthes){if (!$endtime) {	return false;}if (!is_int($monthes) || $monthes $monthes){		$res_y = $y;		$res_m = $m-$monthes;		$t = date("t",strtotime($res_y."-".$res_m."-01"));		if($d0){	$y = $y-$year;	$monthes = $monthes_mod;	if($m $monthes){		$res_y = $y;		$res_m = $m-$monthes;		$t = date("t",strtotime($res_y."-".$res_m."-01"));		if($d0;//$monthes_mod =0或>0或if ($year>0) {	if ($monthes_mod>0) {		$m_diff = 12+$m-$monthes_mod;		$m_diff_div = floor($m_diff/12);		$m_diff_mod = $m_diff%12;		if ($m_diff_div > 0) {			$res_y = $y;			$res_m = $m_diff_mod;		}elseif ($m_diff_div == 0) {			$res_y = $y -1;			$res_m = $m_diff_mod;		}	}elseif ($monthes_mod==0) {		//整除		$res_y = $y;		$res_m = $m;			}}elseif ($year == 0) {	$m_diff = 12+$m-$monthes_mod;	$m_diff_div = floor($m_diff/12);	$m_diff_mod = $m_diff%12;	if ($m_diff_div > 0) {		$res_y = $y;	}elseif ($m_diff_div == 0) {		$res_y = $y -1;	}	$res_m = $m_diff_mod;}$t = date("t",strtotime($res_y."-".$res_m."-01"));if($d