时间差计算函数

10 篇文章 0 订阅
function getDateDiff($date_one,$date_two){
    // 指定两个日期,转换为 Unix 时间戳

    $date1 = strtotime($date_one);

    $date2 = strtotime($date_two);

//计算两个日期之间的时间差

    $diff = abs($date2 - $date1);

//转换时间差的格式

    $years = floor($diff / (365*60*60*24));

    $months = floor(($diff - $years * 365*60*60*24)  / (30*60*60*24));

    $days = floor(($diff - $years * 365*60*60*24 -  $months*30*60*60*24)/ (60*60*24));

    $hours = floor(($diff - $years * 365*60*60*24   - $months*30*60*60*24 - $days*60*60*24)  / (60*60));

    $minutes = floor(($diff - $years * 365*60*60*24  - $months*30*60*60*24 - $days*60*60*24  - $hours*60*60)/ 60);

    $seconds = floor(($diff - $years * 365*60*60*24  - $months*30*60*60*24 - $days*60*60*24  - $hours*60*60 - $minutes*60));

    return [$years, $months, $days, $hours, $minutes, $seconds];
}

/**
 * 最大是按天算
 * @param $date_one
 * @param $date_two
 * @return array
 */
function getDateDiffDayMax($date_one,$date_two){
    // 指定两个日期,转换为 Unix 时间戳

    $date1 = strtotime($date_one);

    $date2 = strtotime($date_two);

//计算两个日期之间的时间差

    $diff = abs($date2 - $date1);

//转换时间差的格式

    $years = 0;

    $months = 0;

    $days = floor(($diff)/ (60*60*24));

    $hours = floor(($diff - $years * 365*60*60*24   - $months*30*60*60*24 - $days*60*60*24)  / (60*60));

    $minutes = floor(($diff - $years * 365*60*60*24  - $months*30*60*60*24 - $days*60*60*24  - $hours*60*60)/ 60);

    $seconds = floor(($diff - $years * 365*60*60*24  - $months*30*60*60*24 - $days*60*60*24  - $hours*60*60 - $minutes*60));

    return [$years, $months, $days, $hours, $minutes, $seconds];
}

/**
 * 输入两个日期,并输入要返回的时间差展示
 * @param $date_one
 * @param $date_two
 * @param array $back_type
 * @return string
 */
 function getDateDiffFormat($date_one,$date_two,$back_type=[0,1,2,3,4,5]){
    $diff_arr = $this->getDateDiff($date_one,$date_two);
    $word_arr = ['年','月','日','时','分','秒'];
    $str = '';
    foreach ($back_type as $item){
        $str .= $diff_arr[$item].$word_arr[$item];
    }

    return $str;
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值