2012-09-12 136 views
1

該系統用於手機合同比較。最初我們可以根據長度過濾結果,以幾個月爲單位。然而,我們選擇將此作爲合同的結束日期的timestamp存儲在數據庫中。PHP MySQL之間的日期

原來的PHP如下:

$min = min($_POST["length"])-6; 
$max = max($_POST["length"]); 
$query[] = "length BETWEEN $min AND $max"; 

總之,這裏是我們的時刻:

  1. 在數據庫存儲在合同結束日期(如一個時間戳)

  2. 後期值包含現在應該持續多少個月(例如,7-12個月的值將爲7)

我們應該如何改變PHP計算以從數據庫中獲取值?

非常感謝,尼克。

回答

3
<?php 
    $diff = 7;  // This may be set to $_POST['length'] 
    $max = date("Y-m-d"); 
    $min = date("Y-m-d", strtotime("$diff months ago")); 
    $query[] = "DATE(`timestamp_field`) BETWEEN CAST($min AS DATE) AND CAST($max AS DATE)"; 
?> 
+0

爲了確保正確的數據類型,是不是必須施加$ min和$ max日期? 'DATE(timestamp_field)CAST($ min AS DATE)和CAST($ max AS DATE)' – Daniel

+0

@Daniel我不確定CAST函數 - 它有什麼作用? –

+0

@Daniel啊,是的。我通常保持我的'日期'和'時間'類型的列分開。所以,這是預建的代碼。 :) – hjpotter92