您现在的位置是:网站首页 > 心得笔记
获取两个日期相差年、月、日
简介在日常需求中,经常需要我们根据两个日期,去获取其天数差、月数差或者年数差。这就需要写一个公共方法,以在需要的地方调用



如上图所示:选择日期类型,选择日时,日期格式是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).'年';