php 获取2个时间戳的相差时间段 自定义函数 相隔几年几个月几天
猪猪那么可爱你们能不能炖香一点
直接计算2个时间戳的时间段,比如入职了多久
// 参数都是时间戳,也可以自己改一下,改成时间字符串,最后一个参数是返回格式
function calDiffDate($endTime = 0, $startTime = 0, $formate='Y-m') {
// 防止转参数传错了
if( $endTime < $startTime ) {
$temp = $endTime;
$endTime = $startTime;
$startTime = $endTime;
}
$startDay = date('Y-m-d', $startTime);
$endDay = date('Y-m-d', $endTime);
$list1 = list($Y1, $m1, $d1) = explode('-', $startDay);
$list2 = list($Y2, $m2, $d2) = explode('-', $endDay);
$data['Y'] = $Y2 - $Y1;
$data['m'] = (int) $m2 - (int) $m1;
$data['d'] = (int) $d2 - (int) $d1;
if( $data['d'] < 0 ) {
$data['d'] += (int) date('t',strtotime("-1 month $startDay"));
$data['m']--;
}
if( $data['m'] < 0 ) {
$data['m'] += 12;
$data['Y']--;
}
$formateData = explode('-', $formate);
$diffStr = '';
foreach ($data as $key => $val) {
if( $val > 0 && in_array($key, $formateData) ) {
switch ($key) {
case 'Y':
$diffStr .= $val.'年';
break;
case 'm':
$diffStr .= $val.'月';
break;
default:
$diffStr .= $val.'日';
break;
}
}
}
return $diffStr;
}
// 示例
执行结果