php date函数常用时间处理

在项目中使用时间处理比较常用,个人项目中总结

/*获取今天开始日期和结束日期*/
public static function today(): array
{
    $data['start'] = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
    $data['end'] = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1;
    return $data;
}

/*获取昨天开始日期和结束日期*/
public static function yesterday(): array
{
    $data['start'] = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y'));
    $data['end'] = mktime(0, 0, 0, date('m'), date('d'), date('Y')) - 1;
    return $data;
}

/*获取本周开始日期和结束日期*/
public static function week(): array
{
    $data['start'] = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1, date('Y'));
    $data['end'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7, date('Y'));
    return $data;
}


/*获取本月开始日期和结束日期*/
public static function month(): array
{
    $data['start'] = mktime(0, 0, 0, date('m'), 1, date('Y'));;
    $data['end'] = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
    return $data;
}

/*获取昨天的前一天开始日期和结束日期*/
public static function beforYesterday(): array
{
    $data['start'] = mktime(0, 0, 0, date('m'), date('d') - 2, date('Y'));
    $data['end'] = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y')) - 1;
    return $data;
}

/*获取近期7天开始日期和结束日期*/
public static function nearSeven(): array
{
    $data['start'] = strtotime(date("Y-m-d", strtotime("-7 day")));
    $data['end'] = time();
    return $data;
}

/*获取当月的第几天*/
public static function dataJ(): int
{
    return date('j');
}

/*获取今天开始日期和结束日期*/
public static function nearToday($day): array
{
    $data['start'] = mktime(0, 0, 0, date('m'), date('d') - $day, date('Y'));
    $data['end'] = mktime(0, 0, 0, date('m'), date('d') + 1 - $day, date('Y')) - 1;
    return $data;
}

/*获取前一周开始日期和结束日期*/
public static function lastWeek(): array
{
    //php获取上周起始时间戳和结束时间戳
    $data['start'] = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1 - 7, date('Y'));
    $data['end'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 7 - 7, date('Y'));
    return $data;
}

/*获取前三周开始日期和结束日期*/
public static function lastThreeWeek(): array
{
    //php获取上三周起始时间戳和结束时间戳
    $data['start'] = mktime(0, 0, 0, date('m'), date('d') - date('w') + 1 - 21, date('Y'));
    $data['end'] = mktime(23, 59, 59, date('m'), date('d') - date('w') + 21 - 21, date('Y'));
    return $data;
}

/*获取近期某个月开始日期和结束日期*/
public static function nearMonth($month): array
{
    $data['start'] = mktime(0, 0, 0, date('m') - $month, 1, date('Y'));;
    $data['end'] = mktime(23, 59, 59, date('m') - $month + 1, 00, date('Y'));  //指定月份月末时间戳
    return $data;
}

/*获取近期某个月开始日期和结束日期*/
public static function lastMonth(): array
{
    $data['start'] = mktime(0, 0, 0, date('m') - 1, 1, date('Y'));;
    $data['end'] = mktime(23, 59, 59, date('m'), 00, date('Y'));  //指定月份月末时间戳
    return $data;
}

/*获取近期某个月开始日期和结束日期*/
public static function lastThreeMonth(): array
{
    $data['start'] = mktime(0, 0, 0, date('m') - 3, 1, date('Y'));;
    $data['end'] = mktime(23, 59, 59, date('m'), 00, date('Y'));  //指定月份月末时间戳
    return $data;
}

/*获取近三个月开始日期和结束日期*/
public static function threeMonth(): array
{
    $data['start'] = strtotime("-0 year -3 month -1 day");
    $data['end'] = time();
    return $data;
}

/*获取近六个月开始日期和结束日期*/
public static function sixMonth(): array
{
    $data['start'] = strtotime("-0 year -6 month -1 day");
    $data['end'] = time();
    return $data;
}

/*把时间数组转换成时间戳*/
public static function arrayTime($time = []): array
{
    $data['start'] = strtotime($time[0] . ' 00:00:00');
    $data['end'] = strtotime($time[1] . ' 23:59:59');
    return $data;
}

/*几小时前*/
public static function tranTime($time)
{
    $rtime = date("m-d H:i", $time);
    $htime = date("H:i", $time);

    $time = time() - $time;

    if ($time < 60) {
        $str = '刚刚';
    } elseif ($time < 60 * 60) {
        $min = floor($time / 60);
        $str = $min . '分钟前';
    } elseif ($time < 60 * 60 * 24) {
        $h = floor($time / (60 * 60));
        $str = $h . '小时前 ' . $htime;
    } elseif ($time < 60 * 60 * 24 * 3) {
        $d = floor($time / (60 * 60 * 24));
        if ($d == 1)
            $str = '昨天 ' . $rtime;
        else
            $str = '前天 ' . $rtime;
    } else {
        $str = $rtime;
    }
    return $str;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值