2013-02-13 110 views
5

是否有PHP函数显示两个日期之间的所有日期?日期函数显示两个日期之间的所有日期

+2

号是否这回答你的问题? – Jon 2013-02-13 10:20:26

+0

您可以添加您期望的样本输出吗?还有,你试过了什么? – Stephan 2013-02-13 10:20:27

+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 =铬&即= UTF-8)。首先链接 – 2013-02-13 10:20:33

回答

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 2017-11-10 08:34:43

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

真棒的东西! – 2017-07-18 09:27:06

+0

请注意,$ day = 86400;并不总是正确的,夏季时间应用的时间越来越短。 – 2017-08-14 16:49:31

相关问题