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

本文介绍如何使用PHP进行精确的日期时间比较,通过具体实例演示如何判断两个日期间的关系及差值,适用于各种需要准确时间计算的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用场景: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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值