Ein Array mit fortlaufenden Tage eines Intervals mit Zend_Date
August 15th, 2009
Lang ist’s her dass ich eine Tabelle bauen musste, deren Zeilen einen jeweils einen Tag eines bestimmten Datum-Intervals representieren. So wie hier:

Ein Array mit fortlaufenden Tagen eines Datum-Interval
Für die Lösung nutze ich wie immer Zend_Date.
/** * Get an array with all days $from - $till * * @param string $from start date e.g. 2008-12-24 * @param string $till end date e.g. 2008-12-24 * @param string $max maximal number of days * @return array * @author Ralf Kramer */ function getDayArray($from, $till, $max=365){ $start = new Zend_Date($from); $stop = new Zend_Date($till); $res = array(); $i = 0; while( $start->compare($stop) < 1){ array_push($res, array( 'date' => $start->get('yyyy-MM-dd'), 'week' => $start->get(Zend_Date::WEEK), 'day_name' => $start->get(Zend_Date::WEEKDAY), 'weekday' => $start->get(Zend_Date::WEEKDAY_DIGIT) ) ); $start->add(1, Zend_Date::DAY); // Emergency break if($i == $max ) break; $i++; } return $res; } $dates = getDayArray('2009-01-01', '2009-01-07'); print_r($dates); Array ( [0] => Array ( [date] => 2009-01-01 [week] => 01 [day_name] => Donnerstag [weekday] => 4 ) [1] => Array ( [date] => 2009-01-02 [week] => 01 [day_name] => Freitag [weekday] => 5 ) [2] => Array ( [date] => 2009-01-03 [week] => 01 [day_name] => Samstag [weekday] => 6 ) [3] => Array ( [date] => 2009-01-04 [week] => 01 [day_name] => Sonntag [weekday] => 0 ) [4] => Array ( [date] => 2009-01-05 [week] => 02 [day_name] => Montag [weekday] => 1 ) [5] => Array ( [date] => 2009-01-06 [week] => 02 [day_name] => Dienstag [weekday] => 2 ) [6] => Array ( [date] => 2009-01-07 [week] => 02 [day_name] => Mittwoch [weekday] => 3 ) )
In diesem Zusammenhang:
- Zend_Date in ein MySQL kompatibles Datum konvertieren Zend_Date hat für alle erdenklichen Ausgabeformate eine Lösung. Nur für...