2013-04-30 212 views
1

我有一系列客戶端訪問信息..陣列正在以升序訪問 訂單日期..我需要獲取最後一次訪問..但它不應該是今天。如何比較日期並獲取不應該在今天的日期日期

stdClass Object 
    (
     [0] => stdClass Object 
          (
           [ID] => 39334 
           [ClassID] => 3193 
           [StartDateTime] => 2013-04-29T06:00:00 
           [LateCancelled] => 
           [EndDateTime] => 2013-04-29T06:45:00 
          ) 
     [1] => stdClass Object 
          (
           [ID] => 39334 
           [ClassID] => 3193 
           [StartDateTime] => 2013-04-30T06:00:00 
           [LateCancelled] => 
           [EndDateTime] => 2013-04-30T06:45:00 
          ) 
    ) 

在這裏,我想第一個... 可以有任意數量的訪問。我只展示了兩個...

+0

查詢?我們可以看到 – 2013-04-30 11:40:51

+2

篩選這些結果的最簡單方法是在從數據庫中獲取它們的查詢中。如果您提供該查詢,我們可以幫助您對其進行調整,以便按照您的意願過濾它們。 – Webnet 2013-04-30 11:41:52

+0

在查詢中添加條件WHERE StartDateTime Robert 2013-04-30 11:43:12

回答

2
$whatIneed = false; 

foreach($myObj as $obj){ 

    // If this is today object just break, and object from previous loop is what you need 
    if(date('dmY')==date('dmY',strtotime($obj->StartDateTime))) break; 

    // saving object in loop into variable 
    $whatIneed = $obj; 
} 

print_r($whatIneed); 
+0

+1很好地完成。解釋會幫助OP,儘管 – Waygood 2013-04-30 11:46:19

+0

@Waygood你是對的,添加了一些評論...還有錯誤 - 突破需要保存對象之前。修正了它。 – Narek 2013-04-30 11:49:47

+0

@Narek +1爲完整答案。 – 2013-04-30 12:02:19

0

您需要編寫一個函數或方法來對您的對象數組進行排序。它必須接收對象的數組作爲參數,然後,例如,創造一個又一個,以及一個添加對象有一個,第一個 - 最新,從午夜開始和背部,然後第二...

0
foreach($obj as $valobj){ 
    // if curentdate is greater than db visit date then insert into array  
    if(strtotime(date('Y-m-d')) > strtotime(date('Y-m-d',$valobj->StartDateTime))){ 
      $arr[] = $valobj; 
    } 

} 

print_r($arr); 
+0

也作爲羅伯特說,我們也可以使用mysql查詢過濾出來'where visitdate!= curdate()' – 2013-04-30 12:07:37

相關問題