php 获取当前月往前12个月的开始时间和结束时间

$currentTime = time();
        $cyear = floor(date("Y",$currentTime));
        $cMonth = floor(date("m",$currentTime));
        $dataArray = [];
        $num = 0;
        for ($i=0;$i<12;$i++){
            $array = [];
            $nMonth = $cMonth-$i;
            $cyear = $nMonth == 0 ? ($cyear-1) : $cyear;
            if($nMonth == 0){
                $nMonth = 12;
            }
            
            if($nMonth < 0){
                $nMonth = 12;
                $num++;
                $nMonth = $nMonth-$num;
            }
            $date = $cyear.'-'.$nMonth;
            $firstday = date("Y-m-01",strtotime($date));
            $lastday = date("Y-m-t",strtotime($date));
            $array[$date]["first"] = $firstday;
            $array[$date]["last"] = $lastday;
            $dataArray[] = $array;
        }
        dump($dataArray);

输出结果

<pre>array(12) {
  [0] =&gt; array(1) {
    ["2020-9"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-09-01"
      ["last"] =&gt; string(10) "2020-09-30"
    }
  }
  [1] =&gt; array(1) {
    ["2020-8"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-08-01"
      ["last"] =&gt; string(10) "2020-08-31"
    }
  }
  [2] =&gt; array(1) {
    ["2020-7"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-07-01"
      ["last"] =&gt; string(10) "2020-07-31"
    }
  }
  [3] =&gt; array(1) {
    ["2020-6"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-06-01"
      ["last"] =&gt; string(10) "2020-06-30"
    }
  }
  [4] =&gt; array(1) {
    ["2020-5"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-05-01"
      ["last"] =&gt; string(10) "2020-05-31"
    }
  }
  [5] =&gt; array(1) {
    ["2020-4"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-04-01"
      ["last"] =&gt; string(10) "2020-04-30"
    }
  }
  [6] =&gt; array(1) {
    ["2020-3"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-03-01"
      ["last"] =&gt; string(10) "2020-03-31"
    }
  }
  [7] =&gt; array(1) {
    ["2020-2"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-02-01"
      ["last"] =&gt; string(10) "2020-02-29"
    }
  }
  [8] =&gt; array(1) {
    ["2020-1"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2020-01-01"
      ["last"] =&gt; string(10) "2020-01-31"
    }
  }
  [9] =&gt; array(1) {
    ["2019-12"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2019-12-01"
      ["last"] =&gt; string(10) "2019-12-31"
    }
  }
  [10] =&gt; array(1) {
    ["2019-11"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2019-11-01"
      ["last"] =&gt; string(10) "2019-11-30"
    }
  }
  [11] =&gt; array(1) {
    ["2019-11"] =&gt; array(2) {
      ["first"] =&gt; string(10) "2019-11-01"
      ["last"] =&gt; string(10) "2019-11-30"
    }
  }
}
</pre>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值