2016-08-17 41 views
1

我試圖檢索已插入到我的MYSQL表中的所有未來日期的列表。PHP - 從服務器檢索未來日期的值

例如:我插入了值8-16-14,8-27-16,8-17-17。問題是下面的代碼返回所有的值,而不僅僅是未來的值。

任何想法爲什麼這不起作用?

public function getUpcomingDate($id) { 
 
\t \t 
 
$date = date('m-d-y'); 
 
\t \t 
 
     $stmt = $this->conn->prepare("SELECT * FROM roles WHERE id = ? AND item_date > '$date'"); 
 
     $stmt->bind_param("i", $id); 
 
     $stmt->execute(); 
 
\t \t $user = $stmt->get_result(); 
 
\t \t $row_count = $user->num_rows; 
 
\t \t while ($row = $user->fetch_assoc()) { 
 
\t \t \t $data[] = $row; 
 
\t \t } 
 

 
     $stmt->close(); 
 
\t \t 
 
\t \t if($data) { 
 
      return $data; 
 
     } else { 
 
      return false; 
 
     } 
 
    }

+0

的MySQL可能比較日期時...退房可以期待一個特定的格式[STR_TO_DATE()](http://www.techonthenet.com/mysql/functions /str_to_date.php) – MonkeyZeus

回答

0

您無法檢查的日期(如薩法德字符串)比另一日期(如薩法德字符串)更大。

這就是爲什麼您應該將日期作爲unix時間戳存儲在數據庫中,然後將$ date與數據庫中的「item_date」進行比較。

支票計算器這個例子的strtotime - >here

+0

對於某個子集,當然你可以用萊希圖排序:'2016-05-13'<'2016-10-17'。當然,這不是這個OP的情況,但你的陳述比這種情況更強。 – bishop