本文介绍: 【代码】PHP 获取今日 本周 当月 本季度 本年的起止时间
/**
 * 处理起止时间
 * @param $type //快速筛选 1-今日 2-本周 3-当月 4-本季度 5-本年
 * @param $startDate //开始日期
 * @param $endDate //结束日期
 * @return array|string[]
 */
function handleStartStopDate($type, $startDate, $endDate)
{
    //默认初始化为今日起止时间
    $suffix_start = ' 00:00:00';
    $suffix_end = ' 23:59:59';
    $dateArray = [
        'startDate' => date('Y-m-d') . $suffix_start,
        'endDate' => date('Y-m-d') . $suffix_end
    ];
    //如果快速获取时间 和 开始时间截止时间存在拿取当前传入的时间
    //或
    //快速获取时间不存在并且开始时间截止时间都存在拿取当前传入的时间
    if (($type && $startDate && $endDate) || (!$type && $startDate && $endDate)) {
        $dateArray['startDate'] = $startDate . $suffix_start;
        $dateArray['endDate'] = $endDate . $suffix_end;
    } elseif ($type && !$startDate && !$endDate) {
        switch ($type) {
            case 2://本周
                $dateArray = getWeekTime();
                break;
            case 3://当月
                $dateArray =  getMonthTime();
                break;
            case 4://本季度
                $dateArray =  getQuarterTime();
                break;
            case 5://本年
                $dateArray =  getYearTime();
                break;
        }
    }
    return $dateArray;
}

/**
 * 获取本周时间
 * @return string[]
 */
function getWeekTime()
{
    // 获取当前日期
    $currentDate = date('Y-m-d');
    // 获取本周起始日期
    $weekStart = date('Y-m-d', strtotime('this week', strtotime($currentDate)));
    // 获取本周结束日期
    $weekEnd = date('Y-m-d', strtotime('this week +6 days', strtotime($currentDate)));
    $start_time = $weekStart . ' 00:00:00';
    $end_time = $weekEnd . ' 23:59:59';
    return $dateArray = [
        'startDate' => $start_time,
        'endDate' => $end_time
    ];
}


//获取本月起止时间
function getMonthTime()
{
    // 获取当前日期
    $currentDate = date('Y-m-d');
    // 获取本月起始日期
    $monthStart = date('Y-m-01', strtotime($currentDate));
    // 获取本月结束日期
    $monthEnd = date('Y-m-t', strtotime($currentDate));
    $start_time = $monthStart . ' 00:00:00';
    $end_time = $monthEnd . ' 23:59:59';
    return $dateArray = [
        'startDate' => $start_time,
        'endDate' => $end_time
    ];
}

/**
 * 获取本季度起止时间
 * @return array
 */
function getQuarterTime()
{
    $season = ceil((date('n'))/3);//当月是第几季度
    $start = date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y')));
    $end = date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y')));
    return $dateArray = [
        'startDate' => $start,
        'endDate' => $end
    ];
}

/**
 * 获取本年起止时间
 * @return array
 */
function getYearTime()
{
    $suffix_start = ' 00:00:00';
    $suffix_end = ' 23:59:59';
    $currentYear = date('Y');
    // 获取本年度起始时间
    $dateArray['startDate'] = date('Y-01-01', strtotime($currentYear)) . $suffix_start;
    // 获取本年度结束时间
    $dateArray['endDate'] = date('Y-12-31', strtotime($currentYear)) . $suffix_end;
    return $dateArray;
}

原文地址:https://blog.csdn.net/qq_41904362/article/details/134754835

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26922.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注