2013-02-13 19 views
5

Czy istnieje funkcja PHP do wyświetlania wszystkich dat między dwiema datami?Funkcja daty wyświetlania wszystkich dat między dwiema datami

+2

Czy No. to odpowiedź na twoje pytanie? – Jon

+0

Czy możesz dodać przykładowy wynik, jakiego oczekujesz? Co więcej, co próbowaliście? – Stephan

+0

[Google.com] (https://www.google.com/search?q=php+funkcja+do wyświetlania+wszystkich+danych+na+dwóch+danych+aq=f&oq=php+funkcji+do wyświetlania + daty + między + dwoma + datami i aqs = chrome.0.57j60l2j62j64.523 i sourceid = chrome & ie = UTF-8). Pierwszy link: –

Odpowiedz

24

Istnieje klasa DatePeriod.

PRZYKŁAD:

$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 stoi na okres jednego dnia, zobaczyć DateInterval do dalszej dokumentacji)

+1

Niemal tam - od 2017-11-03 do 2017-11-10 show 03, 04, 05, 06, 07, 08, 09. Powinniśmy albo wykluczyć 03 albo włączyć 10. – crafter

4

Możesz sprawdzić tę funkcję również

 $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

niesamowite rzeczy !! –

+0

Zauważ, że $ dzień = 86400; nie zawsze jest poprawne, są krótsze i dłuższe dni, gdy stosuje się czas letni. –

Powiązane problemy