php日期对比date_create(),date_diff()函数的使用

来源:互联网 发布:sql的cast函数转date 编辑:程序博客网 时间:2024/06/15 15:29

使用场景: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;
原创粉丝点击