2012-11-12 10 views

Odpowiedz

16

Spróbuj:

// 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

Prosto, miło. +1 dla daty ("t"). – Jean

2

Jak o tym:

$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

A jeśli miesiąc ma mniej niż 31 dni? – Moozy

+1

Następnie są pomijane przez if. –

+0

Dzięki za szybką odpowiedź, dokładnie to, czego potrzebowałem! – Moozy

4

prosta funkcja zwraca taką tablicę mógłby wyglądać następująco:

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; 
} 

razie potrzeby, można poprawić poprzez zmianę kroku (+1 day) i formatu wyjściowego (Y-m-d) na opcjonalne parametry ers.

+1

najlepsze dla mojej sytuacji, gdy mam datę rozpoczęcia i zakończenia, dzięki – JochemQuery

Powiązane problemy