您现在的位置是:网站首页 > 心得笔记
获取两个日期相差年、月、日
简介在日常需求中,经常需要我们根据两个日期,去获取其天数差、月数差或者年数差。这就需要写一个公共方法,以在需要的地方调用
如上图所示:选择日期类型,选择日时,日期格式是Y-m-d格式;选择月时,日期格式是Y-m格式;选择年时,日期格式是Y格式。在去获取想差年月日差
这里获取时间差,就可用如下方法:
function diffBetweenTwoDays ($day1, $day2, $type) { $second1 = strtotime($day1);//转换日期格式为时间戳 $second2 = strtotime($day2); //判断两日期大小,并交换之,使day1>day2 if ($second1 < $second2) { $tmp = $second2; $second2 = $second1; $second1 = $tmp; } if ($type == 1) {//相差天数 return ($second1 - $second2) / 86400;//日24*60*60=86400 } elseif ($type == 2) {//相差月数 return ($second1 - $second2) / 2592000;//月24*60*60*30=2592000 } else { return $second1 - $second2;//年24*60*60*30*12=31104000 } }
调用如下:
//相差天数 $j = $this->diffBetweenTwoDays($endDate, $startDate,1); $days = ($j + 1).'天'; //相差月数 $j = $this->diffBetweenTwoDays($startDate, $endDate,2); $j = intval($j); $days = ($j + 1).'个月'; //相差年数 $j = $this->diffBetweenTwoDays($startDate, $endDate,3); $days = ($j + 1).'年';