使用场景:2017/6/28 0:0:0 和2017/6/27 23:59:59这样的日期差别是1天
<?php
$time = time();
/**
注意事项:时间的比较会带(+-)符号,当然如果$interval->format('%a')这样的话就不带符号了,但是比较不出哪个时间早哪个时间晚
比较规则是:data_diff($day2,$day1);后面的数减去前面的数,如果后面的数比前面的大就为正数,否则为负数
*/
#date_create的比较适合这种场景,相差1秒钟就差了一天
$day1 = date_create(date('Ymd',strtotime('2017/6/28 0:0:0')));
$day2 = date_create(date('Ymd',strtotime('2017/6/27 23:59:59')));
$diff = date_diff($day2,$day1);
$diff_days = $diff->format("%R%a");
echo $diff_days;
echo "<hr>";
$datetime1 = date_create(date('Ymd',$time));//当前时间
$datetime2 = date_create(date('Ymd',$time-86400*20));//应还款时间
$interval = date_diff($datetime2, $datetime1);
$overdue_days = $interval->format('%R%a');//已经还款但是逾期的天数
echo $overdue_days;//比较出来的时间是带正负(+-)符号的
if($overdue_days>0){
echo '$datetime1比$datetime2大:'.intval($overdue_days).'天'.PHP_EOL;
}else{
echo '$datetime1比$datetime2小:'.intval($overdue_days).'天'.PHP_EOL;
}
$overdue_days = ($overdue_days>0)?intval($overdue_days):$overdue_days;
echo $overdue_days;
echo "<hr>";
$day1 = date_create("20170628");
$day2 = date_create("20170601");
$diff = date_diff($day2,$day1);
$diff_days = $diff->format("%R%a");
echo $diff_days;