2014-02-24 181 views
0

我試圖將存儲日期與當前日期進行比較,並相應地發回數據。我不精通PHP所以這是我迄今爲止PHP將表中的日期與當前日期進行比較

while ($row = mysql_fetch_array($result)) { 
    // temp user array 
    $event_date_str = $row["date"]; 
    $todays_date_str = date("m-j-Y"); 

    $today = strtotime($todays_date_str); 
    $event_date = strtotime($event_date_str); 
    if($event_date > $today){ 
    $event = array(); 
    $event["pid"] = $row["pid"]; 
    $event["name"] = $row["name"]; 
    $event["longitude"] = $row["longitude"]; 
    $event["latitude"] = $row["latitude"]; 
    $event["pavement"] = $row["pavement"]; 
    $event["traffic"] = $row["traffic"]; 
    $event["environment"] = $row["environment"]; 
    $event["image_b64"] = $row["image_b64"]; 
    $event["created_at"] = $row["created_at"]; 
    $event["date"] = $row["date"]; 
    $event["time"] = $row["time"]; 
    $event["type"] = $row["type"]; 
    // push single product into final response array 
    array_push($response["events"], $event); 
    }else{ 
    //delete it here 
    } 

與該代碼在那裏我得到任何回報。我有2個項目存儲在數據庫中,一個日期爲「2-28-2014」,另一個爲「2-14-2014」,所以我應該得到一個回來,而不是其他的,但我沒有回來。我知道沒有保存日期的前導零,所以我應該使用j對嗎?有人可以幫我弄清楚爲什麼這不起作用,對不起,如果它看起來像一個簡單的問題。

謝謝你在前進,

泰勒

+0

這將幫助您發佈與您的問題實際相關的代碼。對於初學者,您的查詢將有助於查看。另外,日期列的數據類型是什麼? –

回答

2

這不是做事情的有效途徑。如果您需要根據日期選擇項目,請直接在MySQL查詢中執行。 PHP過濾總是比MySQL慢。特別是因爲您必須在PHP級別過濾時通過網絡傳輸額外的數據。

所以像這樣做:

SELECT * FROM `table` WHERE `record_expires_datetime_gmt` > UTC_TIMESTAMP(); 
SELECT * FROM `table` WHERE `record_expires_date_gmt` > DATE(UTC_TIMESTAMP()); 
// use NOW() for local time, UTC_TIMESTAMP() is GMT/UTC 

然後你需要記錄做什麼。從不SELECT *,然後在PHP中篩選記錄。

MySQL中有一整套DATETIME functions可以讓你對MySQL服務器端數據進行過濾。

PS:很明顯,對於這種方法的工作,你的MySQL表必須正確設計。日期(日期和時間)字段需要是類型DATEDATETIME不代替只在您的項目中有意義的字符串。

+0

他們會爲事件設置一個日期,然後保存該事件。我需要更改哪些內容才能進入DATE類型?我知道我必須改變結構以包含DATE類型。 – TylerM

+0

@TylerM您需要將用戶輸入值的事件日期轉換爲MySQL的'YYYY-MM-DD' *(或日期時間的'YYYY-MM-DD HH:MM:SS')*格式。因此,當您對數據進行INSERT時,請確保日期正確*(以本地或全球(GMT)時間)*。 – CodeAngry

+0

我想我只會使用DATE,因爲時間無關緊要。並且$ event_date_arr = explode(「 - 」,// WHERE); $ event_date = mktime(0,0,0,$ event_date_arr [2],$ event_date_arr [0],$ event_date_arr [1]);然後將INSERT $ event_date插入表中的DATE類型字段中? – TylerM

相關問題