2013-02-13 17 views
5

2つの日付の間にすべての日付を表示するPHP関数はありますか?日付機能2つの日付間のすべての日付を表示する

+2

号はいこれはあなたの質問に答えますか? – Jon

+0

期待どおりのサンプル出力を追加できますか?以上、ouは何を試したのですか? – Stephan

+0

[Google.com](https://www.google.com/search?q=php+function+to+display+all+dates+between+two+date&aq=f&oq=php+function+to+display+all +日付+2 +日付&aqs = chrome.0.57j60l2j62j64.523&sourceid = chrome&ie = UTF-8)最初のリンク –

答えて

24

DatePeriodクラスがあります。

例:

$begin = new DateTime('2013-02-01'); 
$end = new DateTime('2013-02-13'); 

$daterange = new DatePeriod($begin, new DateInterval('P1D'), $end); 

foreach($daterange as $date){ 
    echo $date->format("Y-m-d") . "<br>"; 
} 

(P1DがさらにドキュメントについてDateIntervalを参照して、一日の期間の略)

+1

ほとんどのところ - 2017-11-03から2017-11-10までの日付は03,04,05,06,07,08,09と表示されます。03を除外するか10を含める必要があります。 – crafter

4

ます。また、この機能をチェックアウトすることができます

 $day = 86400; // Day in seconds 
     $format = 'Y-m-d'; // Output format (see PHP date funciton) 
     $sTime = strtotime($start_date); // Start as time 
     $eTime = strtotime($end_date); // End as time 
     $numDays = round(($eTime - $sTime)/$day) + 1; 
     $days = array(); 

     for ($d = 0; $d < $numDays; $d++) { 
      $days[] = date($format, ($sTime + ($d * $day))); 
     } 
+0

素晴らしいもの!! –

+0

$ day = 86400です。常に正しいとは限りません。夏時間が適用される日数が短くて長くなります。 –

関連する問題