2013-02-13 34 views
5

Có chức năng PHP nào để hiển thị tất cả các ngày giữa hai ngày không?Chức năng ngày để hiển thị tất cả các ngày giữa hai ngày

+2

số Liệu điều này trả lời câu hỏi của bạn? – Jon

+0

Bạn có thể thêm đầu ra mẫu của những gì bạn mong đợi không? Hơn nữa, bạn đã thử gì? – 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 + ngày + giữa + hai + ngày & aqs = chrome.0.57j60l2j62j64.523 & sourceid = chrome & ie = UTF-8). Liên kết đầu tiên –

Trả lời

24

Có lớp DatePeriod.

VÍ DỤ:

$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 tượng trưng cho khoảng thời gian một ngày, xem DateInterval cho tài liệu hướng dẫn thêm)

+1

Hầu như có - ngày từ 2017-11-03 đến 2017-11-10 hiển thị 03, 04, 05, 06, 07, 08, 09. Chúng tôi phải loại trừ 03 hoặc bao gồm 10. – crafter

4

Bạn có thể kiểm tra chức năng này cũng

 $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

những thứ tuyệt vời !! –

+0

Lưu ý rằng $ day = 86400; không phải lúc nào cũng đúng, có những ngày ngắn hơn và dài hơn khi thời gian mùa hè được áp dụng. –

Các vấn đề liên quan