2015-01-17 163 views
-1

我正在構建一個關於事件相關的php,mysql的應用程序。這是用戶重複活動/事件的特定功能。用戶將選擇開始日期和結束日期。現在我想弄清楚如何計算這兩個選定日期之間的日期。我正在使用jQuery的datepicker日期選擇。選擇兩個所選日期之間的所有日期

 $start_date = date("Y-m-d", strtotime($_POST['start_date'])); 
    $end_date = date("Y-m-d", strtotime($_POST['end_date'])); 

Datediff似乎沒有做的工作,因爲它只給出兩個日期之間的差異。我需要這兩個日期之間的所有日期。

如果有人能夠就如何解決這個問題提供建議,那將會很棒。

+0

你想用這些日期做什麼? –

+0

與論壇網站不同,我們不使用「謝謝」或「任何幫助表示讚賞」,或在[so]上簽名。請參閱「[應該'嗨','謝謝',標語和致敬從帖子中刪除?](http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be –

回答

0

通過這種方式你可以兩個日期

$start_date = strtotime($_POST['start_date']); 
    $end_date = strtotime($_POST['end_date']); 

    // Loop between timestamps, 24 hours at a time 
    for ($i = $start_date ; $i <= $end_date ; $i = $i + 86400) { 
       echo date('Y-m-d', $i)."<br>";   

    } 
+0

這是輸出---> 1970-01-01 對於所選日期之間: 2015-01-29 ---> 2015-03-29 – user1411837

+0

正確測試.. 。它返回所有日期之間29日1月和29日3月 –

+0

只需複製並粘貼我的代碼在PHP中,並嘗試 –

-1

之間取日期,我會建議你使用datetime對象

date_default_timezone_set("Europe/Istanbul"); 
$dt = new DateTime("10-01-2014"); 
$diff = $dt->diff(new Datetime("12-01-2014")); 
for($i = 1; $i <= $diff->days; $i++) { 
    $nextdate = $dt->modify("+1 day"); 
    echo $nextdate->format("d-m-Y"); echo "\n"; 
} 
+0

你在測試自己之前張貼在這裏???? –

+0

這似乎並沒有工作.... $ dt = new DateTime($ _ POST ['start_date']);和$ diff = $ dt-> diff($ _ POST ['end_date']);沒有意義,因爲它們會拋出空白輸出... – user1411837

+0

它們是示例代碼,請閱讀DateTime [文檔](http://php.net/manual/en/class.datetime.php) 我不知道你的start_date字段包含了什麼,所以你可能需要改變一點這個示例代碼 –

-1
function createDateRangeArray($strDateFrom,$strDateTo) 
    {  
     $aryRange=array(); 

     $iDateFrom=mktime(1,0,0,substr($strDateFrom,5,2),  substr($strDateFrom,8,2),substr($strDateFrom,0,4)); 
     $iDateTo=mktime(1,0,0,substr($strDateTo,5,2),  substr($strDateTo,8,2),substr($strDateTo,0,4)); 

     if ($iDateTo>=$iDateFrom) 
     { 
      array_push($aryRange,date('Y-m-d',$iDateFrom)); // first entry 
      while ($iDateFrom<$iDateTo) 
      { 
       $iDateFrom+=86400; // add 24 hours 
       array_push($aryRange,date('Y-m-d',$iDateFrom)); 
      } 
     } 
     return $aryRange; 
    } 

發現了上述解決方案,它的偉大工程。感謝大家的時間和建議。

+0

我真的建議你在我的評論中創建你自己的函數庫。我編輯了你現在將瞭解的代碼。 http://stackoverflow.com/questions/28000840/php-mysql-select-all-the-dates-between-two-chosen-dates/28000930#28000930 –

相關問題