簡體   English   中英

還有什么更簡單的方法來獲取兩個日期之間的所有月份和年份列表,然后再進行查找

[英]Is there any more simple way to get all months and years list between two dates then mine

我想在兩個日期之間依次獲取所有月份和年份。 我想要這樣的輸出:Ym

我做完了。 但是,我只想知道有沒有簡單的方法來獲得相同的結果。

有我的代碼:

public function __construct()
{
    $this->params['start-date'] = date('Y-m-d', strtotime("01-01-2016"));
    $this->params['end-date'] = date('Y-m-d', time());
}

/**
 * @return array
 */
private function _getAllMonths()
{
    $start  = date_parse($this->params["start-date"]);
    $end  = date_parse($this->params["end-date"]);

    $output[] = ['month' => $start["year"]."-0".$start["month"]];
    //loop years
    for($i=(int)$start["year"];$i<=(int)$end["year"];$i++)
    {
        //control months and start year
        $k = $i == $start["year"] ? (int)$start["month"] + 1 : 1;
        //loop months
        for($j=$k;$j<13;$j++)
        {
            if($i==$end["year"] && $j==$end["month"])
                break;
            $output[] = ["month" => $i."-".str_pad($j, 2, "0", STR_PAD_LEFT)];
        }
    }
    return $output;
}

請給我解釋一下

如何使您入門

$start = new \DateTime('now');
$end = new \DateTime('now + 3 years');
$interval = new \DateInterval('P1M');
$period = new \DatePeriod($start, $interval, $end);

foreach($period as $date) {
    echo $date->format('Y-m-d H:i:s') . "\n";
}

使其適應您的需求並不是一個重大步驟

PHP手冊頁

  1. 約會時間
  2. 日期間隔
  3. DatePeriod

如果您在約會方面做得很多,我建議您使用一個名為Carbon的圖書館

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM