zoukankan      html  css  js  c++  java
  • PHP 获取两个日期之间的月、天

    获取月:

            $start_year = '2020';//开始年
            $start_month = '01';//开始月
            $end_year = '2021';//结束年
            $end_month = '09';//结束月
            $date_arr = [];//保存结果的数组
    
            if ($start_year == $end_year) {//本年
                for ($month_i = $start_month; $month_i <= $end_month; $month_i++) {
                    $date_arr[] = $start_year . '-' . sprintf("%02d", $month_i);//使用不满2位数时填充0的月份
                }
            } else {//跨年
                for ($year_i = $start_year; $year_i <= $end_year; $year_i++) {
                    if ($year_i == $start_year) {
                        //开始年 和'结束年'不同,月从'开始月'直接循环到12月
                        for ($month_i = $start_month; $month_i <= 12; $month_i++) {
                            $date_arr[] = $year_i . '-' . sprintf("%02d", $month_i);
                        }
                    } else if ($year_i == $end_year) {
                        //结束年 月循环到'结束月'
                        for ($month_i = 1; $month_i <= $end_month; $month_i++) {
                            $date_arr[] = $year_i . '-' . sprintf("%02d", $month_i);
                        }
                    } else {
                        //中间年 从1月循环到12月
                        for ($month_i = 1; $month_i <= 12; $month_i++) {
                            $date_arr[] = $year_i . '-' . sprintf("%02d", $month_i);
                        }
                    }
                }
            }
    
            var_dump($date_arr);//处理结果

     获取日:

            $start_year = '2020';//开始年
            $start_month = '01';//开始月
            $end_year = '2021';//结束年
            $end_month = '09';//结束月
            $start_day = '01';//开始日
            $end_day = '23';//结束日
            $date_arr = [];//保存结果的数组
            $week_arr = [0 => '星期日', 1 => '星期一', 2 => '星期二', 3 => '星期三', 4 => '星期四', 5 => '星期五', 6 => '星期六'];
    
            for ($year_i = $start_year; $year_i <= $end_year; $year_i++) {
                if ($year_i == $start_year) {
                    $start_num = $start_month;
                } else {
                    $start_num = 1;
                }
                if ($year_i == $end_year) {
                    $end_num = $end_month;
                } else {
                    $end_num = 12;
                }
                for ($month_i = $start_num; $month_i <= $end_num; $month_i++) {
                    $year_month = $year_i . '-' . sprintf("%02d", $month_i);
                    $date_str = strtotime($year_month);
                    $start_i = 1;
                    $end_i = date('t', $date_str);
                    if ($month_i == $start_month) {
                        $start_i = (int)$start_day;
                    }
                    if ($month_i == $end_month) {
                        $end_i = (int)$end_day;
                    }
                    for ($day_i = $start_i; $day_i <= $end_i; $day_i++) {
                        $title = $year_i.'年'.$month_i.'月'.$day_i.'日('.$week_arr[date('w', strtotime($year_i.'-'.$month_i.'-'.$day_i))].')';//年+月+日+(星期)
                        $date_arr[] = $year_i.'-'.sprintf("%02d", $month_i).'-'.sprintf("%02d", $day_i);//年-月-日
                        var_dump($title);
                    }
                }
            }

    获取日的逻辑进行了精简

  • 相关阅读:
    Mybatis Cause: java.lang.ClassNotFoundException: Cannot find class:
    java常见面试题及部分答案
    页面css样式找不到问题
    深入分析Java I/O的工作机制 (二)
    深入分析Java I/O的工作机制 (一)
    LifecycleProcessor not initialized
    几个java小例子
    idea 过段时间java程序包不存在问题 ?
    使用HttpClient发送Get/Post请求 你get了吗?
    Convert PIL Image to byte array?
  • 原文地址:https://www.cnblogs.com/yuanshen/p/15324633.html
Copyright © 2011-2022 走看看