2013-04-24 174 views
2

我有兩個日期,我需要使用Codeigniter的數組中的這兩個日期之間的所有日期。在此先感謝您的幫助 我的意思是這樣的如何獲取代碼數組中兩個日期之間的所有日期

$fromDate =$this->input->post('fromDate'); 
    $toDate = $this->input->post('toDate'); 
    $allDate = array('all the dates between these two date'); 
+1

每納秒是一個日期...... – Rooster 2013-04-24 16:43:33

+0

我可以像'10/12/2013','11/12/2013'這樣的日子得到這樣的 – Mansoor 2013-04-24 16:48:12

+1

http://php.net/manual/ en/class.dateperiod.php – stormdrain 2013-04-24 16:52:15

回答

3

可以這樣做.........

 $start_date = date('Y-m-d', strtotime($start_date)); 
     $end_date = date('Y-m-d', strtotime($end_date)); 
     $day = 86400; // Day in seconds 
     $format = 'Y-m-d'; // Output format (see PHP date funciton) 
     $sTime = strtotime($start_date); // Start as time 
     $eTime = strtotime($end_date); // End as time 
     $numDays = round(($eTime - $sTime)/$day) + 1; 
     $days = array(); 
     for ($d = 0; $d < $numDays; $d++) { 
      $days[] = date($format, ($sTime + ($d * $day))); 
     } 
+0

謝謝。它運作良好 – Mansoor 2013-04-25 09:57:42

0

Venkat解決方案並不爲期間的工作,包括從夏季到冬季時間(-1小時)的DST變化。例如。在2013-10-01至2013-10-31的某個特定時期內,2013-10-27的日期會增加兩次。一種解決方案是增加一小時或3600秒。因此for循環中的語句是:

$ days [] = date($ format,($ sTime +($ d * $ day)+ 3600));

相關問題