2016-05-04 74 views
-4

開始日期2015年1月1日= 結束日期= 2015年2月1日分段間隔

日期= 2015年1月15日

欲兩個間隔這樣

間隔1 開始日期2015年1月1日= 結束日期= 2015年1月15日

間隔2 開始日期2015年1月16日= 結束日期= 2015年2月1日

我的代碼看起來這

<?php 

$fromdate = '2015-12-01'; 
$todate ='2015-01-01'; 

if ($fromdate < '2015-12-18' && $todate > '2015-12-18') 
{ 
// here i have to split interval into two intervals and get data from both tables old_orders and new_orders 
    $fromdate1 = '2015-12-01'; $todate1 = '2015-12-15'; 
    $fromdate2 = '2015-12-16'; $todate2 = '2015-01-01'; 



$query1 = "SELECT * FROM new_orders WHERE date BETWEEN '".$fromdate1."' AND '".$todate1."'"; 
$query2 = "SELECT * FROM new_orders WHERE date BETWEEN '".$fromdate2."' AND '".$todate2."'"; 

} 
else if ($fromdate > '2015-12-18') 
{ 
    $query1 = "SELECT * FROM new_orders WHERE date BETWEEN '".$fromdate."' AND '".$todate."'"; 
} 
else if ($todate < '2015-12-18') 
{ 
    $query1 = "SELECT * FROM old_orders WHERE date BETWEEN '".$fromdate."'" AND '".$todate."'"; 
} 
+5

的任何代碼,您能告訴我們?這看起來相當簡單。 – Andrius

+1

你到目前爲止嘗試過什麼? – prava

+3

歡迎來到SO,在提問時請稍微具體一點:您嘗試過什麼,期望什麼等。請參閱[如何提問](http://stackoverflow.com/help/how-to-ask) – Nehal

回答

1

試試這個:

<?php 

$startDate = '2015-01-01'; 
$endDate = '2015-02-01'; 
$date = '2015-01-15'; 

$intervals = array(); 

$intervals[] = array('startDate'=>$startDate, 'endDate'=>$date); 
$intervals[] = array('startDate'=>date('Y-m-d', strtotime($date . ' +1 day')), 'endDate'=>$endDate); 

$intervals數組你有結構是這樣的:

Array 
(
    [0] => Array 
     (
      [startDate] => 2015-01-01 
      [endDate] => 2015-01-15 
     ) 

    [1] => Array 
     (
      [startDate] => 2015-01-16 
      [endDate] => 2015-02-01 
     ) 
) 
+0

謝謝你,我想要的,也感謝你們所有人guyz – AftabHafeez

0

如果我沒有理解你,你需要類似的東西:

function isDateBetweenDates ($date, $startDate, $endDate) { 
    $strDate = strtotime($date); 
    $strStartDate = strtotime($startDate); 
    $strEndDate = strtotime($endDate); 

    return ($strDate >= $strStartDate && $strDate <= $strEndDate); 
} 

$date = "2015-01-15"; 
$startDate = "2015-01-01"; 
$endDate = "2015-02-01"; 

class Interval {} 
$interval = new Interval(); 

if (isDateBetweenDates($date, $startDate, $endDate)) { 
     $interval->firstPart = array(
      "start" => $startDate, 
      "end" => $date 
     ); 

     $newDate = new DateTime($date); 
     $newDate->modify("1 day"); 

     $interval->secondPart = array(
      "start" => $newDate->format("Y-m-d"), 
      "end" => $endDate 
     ); 
} 

最好的問候。