就比如說 9月15號 9月16號 9月17號,知道從哪天開始、到哪天結束。怎麼算出中間的日期。
就比如說 9月15號 9月16號 9月17號,知道從哪天開始、到哪天結束。怎麼算出中間的日期。
既然知道開始和結束時間,那麼用結束時間戳減去開始時間戳的差值除以86400就是間隔天數
如果是取得中間的日期,我覺得樓上 南小鳥
的程式碼不夠簡潔,如下
<code>$start = new DateTime('2016-09-15'); $end = new DateTime('2016-09-17'); for ($start;$start<=$end;$start->modify('+1 day')) { echo $start->format('Y-m-d')."<br/>"; }</code>
推薦我用過的最好的PHP時間處理擴充: Carbon,基本上所有的關於時間的計算都能搞定
Carbon比較方便
不過PHP預設的就有這個功能
<code>$start = new DateTime('2016-09-15'); $end = new DateTime('2016-09-17'); $inteval = new DateInteval('P1D'); $period = new DatePeriod($start, $end, $inteval); foreach ($period as $date) { }</code>
<code> $start = '2016-09-15'; $end = '2016-09-17'; $start = strtotime($start); $end = strtotime($end); $days = ($end - $start) / 3600 / 24; for ($i = 0; $i <= $days; $i++) { echo date('Y-m-d', $start + 3600 * 24 * $i) . "<br>"; } 2016-09-15 2016-09-16 2016-09-17 </code>