Lista dat w podanym zakresie

Witam serdecznie,

Potrzebuję skrypt do wyświetlenia dat pomiędzy 2 datami. Czyli przykładowo podaję datę: 

2015-01-01 oraz 2015-01-05 i skrypt zwraca:

2015-01-01

2015-01-02

2015-01-03

2015-01-04

2015-01-05

 

 

Wie ktoś może jak to zrobić w php?smile.gif

 

 

Bardzo proszę o pomoc,

Northwest

Tutaj masz dodawanie  jednego dnia:

 

http://stackoverflow.com/questions/1394791/adding-one-day-to-a-date

 

do tego  zwykły for/while i będzie działać.

 

Czy szukasz bardziej wysublimowanego rozwiązania? Jeśli tak to podaj co masz i co byś chciał zoptymalizować.

nie napisałeś czy pobierasz daty z bazy więc na samym PHP

Opracowałem taki skrypt:

$start = '2015-10-11';
$datetime1 = new DateTime($start);
$datetime2 = new DateTime('2015-10-13');
$interval = $datetime1->diff($datetime2)->d;

$d = [];
for($i = 0; $i<= $interval; $i++) {
  $d[] = $datetime1->add(new \DateInterval('P'. $i .'D'))->format('d.m.Y');
}

 

 

Na localhoście działa mi to poprawnie, tylko na serwerze (home.pl) wywala błąd:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /book.php on line

 

Na home.pl jest php 5.3 i chyba przez to, to nie działa :frowning:

 

Ma ktoś może pomysł jak to przerobić?

Może najpierw pokaż w której linii masz błąd

 

W tej, gdzie nazwa klasy zaczyna się od forward slasha - flies away…

Nazwę klasy możesz rozpocząć od znaku backslasha, jest to separator przestrzeni nazw w PHP >= 5.3.

 

Co do błedu, nie jest to wina wersji PHP, bo klasy DateTime/DateInterval są obsługiwane przez wersję 5.3, jest to wina błędnie zadeklarowanej tablicy. W nowszych wersjach interpretera jest zaimplementowana możliwość takiej definicji, natomiast 5.3 tego jeszcze nie obsługuje.

 

Zamień $d = []; na $d = array() i powinno grać.