2012-11-12 66 views

回答

16

尝试:

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

直截了当,很好。日期+1('t')。 – Jean

2

如何:

$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

如果月份少于31天? – Moozy

+1

然后他们被if跳过。 –

+0

感谢这个快速答案,正是我需要的! – Moozy

4

一个简单的函数返回这样的阵列可以是这样的:

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

如果需要的话,可以提高它通过将步骤(+1 day)和输出格式(Y-m-d)更改为可选参数ERS。

+1

最适合我的情况,当我有一个开始和结束的日期,谢谢 – JochemQuery

相关问题