美文网首页
廿八、获取两个年月中间的所有月初,月末的时间戳

廿八、获取两个年月中间的所有月初,月末的时间戳

作者: yuzhan550 | 来源:发表于2019-03-20 15:13 被阅读0次

    1. 比如:2016-08 -> 2019.04

    function month_io($y1,$m1,$y2,$m2){  // (2016,08,2019,04)
        //1. 补全  start年的月数
        if( $m1 !=12 ){
            for( $i=$m1;$i<=12;$i++ ){
                $res[]['y_m'] = $y1 . '-' . $i;
            }
        }
        unset($i);
        //2. 始末年份的差值
        if( ($y1+1)!=$y2  ){
            for( $i=$y1+1;$i<$y2;$i++ ){
                for($j=1;$j<=12;$j++){
                    $res[]['y_m'] = $i . '-' . $j;
                }
            }
        }
        unset($i);
        unset($j);
        //3. 今年的月份
        for($i=1;$i<=$m2;$i++){
            $res[]['y_m'] = $y2 . '-' . $i;
        }
        //4. 遍历这个array,存入戳
        foreach ($res as $k=>$v){
            $res[$k]['month_start_io'] = strtotime($v['y_m']);
            $mm = date('m',strtotime($v['y_m']));
            $dd = date('t',strtotime($v['y_m']));
            $yy = date('Y',strtotime($v['y_m']));
            $res[$k]['month_end_io'] = mktime(23, 59, 59,$mm,$dd,$yy);
        }
        return $res;
    }
    

    2. 结果:

    Array
    (
    [0] => Array
        (
            [y_m] => 2017-8
            [month_start_io] => 1501516800
            [month_end_io] => 1504195199
        )
    
    [1] => Array
        (
            [y_m] => 2017-9
            [month_start_io] => 1504195200
            [month_end_io] => 1506787199
        )
    
    [2] => Array
        (
            [y_m] => 2017-10
            [month_start_io] => 1506787200
            [month_end_io] => 1509465599
        )
    
    [3] => Array
        (
            [y_m] => 2017-11
            [month_start_io] => 1509465600
            [month_end_io] => 1512057599
        )
    
    [4] => Array
        (
            [y_m] => 2017-12
            [month_start_io] => 1512057600
            [month_end_io] => 1514735999
        )
    
    [5] => Array
        (
            [y_m] => 2018-1
            [month_start_io] => 1514736000
            [month_end_io] => 1517414399
        )
    
    [6] => Array
        (
            [y_m] => 2018-2
            [month_start_io] => 1517414400
            [month_end_io] => 1519833599
        )
    
    [7] => Array
        (
            [y_m] => 2018-3
            [month_start_io] => 1519833600
            [month_end_io] => 1522511999
        )
    
    [8] => Array
        (
            [y_m] => 2018-4
            [month_start_io] => 1522512000
            [month_end_io] => 1525103999
        )
    
    [9] => Array
        (
            [y_m] => 2018-5
            [month_start_io] => 1525104000
            [month_end_io] => 1527782399
        )
    
    [10] => Array
        (
            [y_m] => 2018-6
            [month_start_io] => 1527782400
            [month_end_io] => 1530374399
        )
    
    [11] => Array
        (
            [y_m] => 2018-7
            [month_start_io] => 1530374400
            [month_end_io] => 1533052799
        )
    
    [12] => Array
        (
            [y_m] => 2018-8
            [month_start_io] => 1533052800
            [month_end_io] => 1535731199
        )
    
    [13] => Array
        (
            [y_m] => 2018-9
            [month_start_io] => 1535731200
            [month_end_io] => 1538323199
        )
    
    [14] => Array
        (
            [y_m] => 2018-10
            [month_start_io] => 1538323200
            [month_end_io] => 1541001599
        )
    
    [15] => Array
        (
            [y_m] => 2018-11
            [month_start_io] => 1541001600
            [month_end_io] => 1543593599
        )
    
    [16] => Array
        (
            [y_m] => 2018-12
            [month_start_io] => 1543593600
            [month_end_io] => 1546271999
        )
    
    [17] => Array
        (
            [y_m] => 2019-1
            [month_start_io] => 1546272000
            [month_end_io] => 1548950399
        )
    
    [18] => Array
        (
            [y_m] => 2019-2
            [month_start_io] => 1548950400
            [month_end_io] => 1551369599
        )
    
    [19] => Array
        (
            [y_m] => 2019-3
            [month_start_io] => 1551369600
            [month_end_io] => 1554047999
        )
    
    [20] => Array
        (
            [y_m] => 2019-4
            [month_start_io] => 1554048000
            [month_end_io] => 1556639999
        )
    
    [21] => Array
        (
            [y_m] => 2019-5
            [month_start_io] => 1556640000
            [month_end_io] => 1559318399
        )
    
    )
    

    相关文章

      网友评论

          本文标题:廿八、获取两个年月中间的所有月初,月末的时间戳

          本文链接:https://www.haomeiwen.com/subject/wyazmqtx.html