2012-11-12 8 views

Antwort

16

Versuchen:

// for each day in the month 
for($i = 1; $i <= date('t'); $i++) 
{ 
    // add the date to the dates array 
    $dates[] = date('Y') . "-" . date('m') . "-" . str_pad($i, 2, '0', STR_PAD_LEFT); 
} 

// show the dates array 
var_dump($dates); 
+0

Geradlinig, nett. +1 für das Datum ('t'). – Jean

2

Wie wäre es damit:

$list=array(); 
for($d=1; $d<=31; $d++) 
{ 
    $time=mktime(12, 0, 0, date('m'), $d, date('Y')); 
    if (date('m', $time)==date('m')) 
     $list[]=date('Y-m-d', $time); 
} 
var_dump($list); 
+0

Und wenn Monat weniger als 31 Tage haben? – Moozy

+1

Dann werden sie von der if übersprungen. –

+0

Danke für diese schnelle Antwort, genau das, was ich brauchte! – Moozy

4

eine einfache Funktion ein solches Array zurück könnte wie folgt aussehen:

function range_date($first, $last) { 
    $arr = array(); 
    $now = strtotime($first); 
    $last = strtotime($last); 

    while($now <= $last) { 
    $arr[] = date('Y-m-d', $now); 
    $now = strtotime('+1 day', $now); 
    } 

    return $arr; 
} 

wenn, können Sie verbessern erforderlich Ändern Sie dazu den Schritt (+1 day) und das Ausgabeformat (Y-m-d) in den optionalen Parameter ers.

+1

am besten für meine Situation, wenn ich ein Start- und Enddatum habe, danke – JochemQuery

Verwandte Themen