2012-11-12 43 views
8

Tôi đang thử và vẫn tự hỏi, làm cách nào tôi có thể nhận được một mảng chứa tất cả các ngày trong tháng hiện tại, nó phải chứa tất cả các ngày theo định dạng: năm tháng -ngày. Cảm ơn bạn đã giúp đỡ!Php mảng chứa tất cả các ngày tháng hiện tại

Trả lời

16

Hãy thử:

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

Đơn giản, hay. +1 cho ngày ('t'). – Jean

2

Làm thế nào về điều này:

$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

Và nếu tháng có ít hơn 31 ngày? – Moozy

+1

Sau đó, chúng bị bỏ qua nếu. –

+0

Cảm ơn câu trả lời nhanh này, chính xác những gì tôi cần! – Moozy

4

một chức năng đơn giản để trả về một mảng như vậy có thể trông như thế này:

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

nếu cần thiết, bạn có thể cải thiện bằng cách thay đổi bước (+1 day) và định dạng đầu ra (Y-m-d) thành tham số tùy chọn ers.

+1

tốt nhất cho tình huống của tôi khi tôi có ngày bắt đầu và ngày kết thúc, cảm ơn – JochemQuery

Các vấn đề liên quan