2013-04-04 105 views
0
$date1 = "2007-03-24"; 
$date2 = "2009-06-26"; 

$diff = abs(strtotime($date2) - strtotime($date1)); 

$years = floor($diff/(365*60*60*24)); 
$months = floor(($diff - $years * 365*60*60*24)/(30*60*60*24)); 
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 

$arary_dates = array(); 

for ($days=1;$i<=$days;$days++) 
{ 
$array_dates[$days] -> new DateTime(2007,0,$days); 
} 

我知道這段代碼是錯誤的,但是我可以向你展示我想要的方式。對象數組在php中的日期

我有一個初步的日期,我想,因爲,最初的日期,直到最後期限,以填補每一個日期對象數組日期(使用天過去了遞增數)

我怎麼能做到這一點?

回答

3

顯然你需要修改開始和結束時間,但這會讓你開始。

$start = new DateTime('first day of this month'); 
$end = new DateTime('first day of next month'); 
$interval = DateInterval::createFromDateString('1 day'); 
$period = new DatePeriod($start, $interval, $end); 

foreach ($period as $dt) 
{ 
    echo $dt->format("l Y-m-d") . PHP_EOL; 
} 
+0

+'DateInterval :: createFromDateString' thats new – Baba 2013-04-04 17:58:00

1

店的日期作爲時間戳和使用適用於您caluclations ... 即

$start = strtotime($date1); 
$end = strtotime($date2); 

$dayArray = array(); 
while($start != $end) { 
    $start += 60*60*24; //seconds in a day, you could alter this to multiple by number of days passed in 
    $dayArray[] = $start; 
} 

然後使用日期()方法,在你選擇的格式顯示時間戳。

0

我還沒有做過這樣的事情,所以我不知道我的代碼是否可以工作。但試着按照邏輯。

 

$start = strtotime("2007-03-24"); //date1 
$end = strtotime("2009-06-26"); //date2 

$array_date = array(); 
while ($start != $end) { 
    $array_dates[] = date('Y-m-j',$start); 
    $oneDay = 60 * 60 * 24; 
    $start += $oneDay; 
}