Home > php, Zend Framework > Ein Array mit fortlaufenden Tage eines Intervals mit Zend_Date

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:

Datumsinterval

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:

  1. Zend_Date in ein MySQL kompatibles Datum konvertieren Zend_Date hat für alle erdenklichen Ausgabeformate eine Lösung. Nur für...

php, Zend Framework

  1. No comments yet.
  1. No trackbacks yet.