2012-05-15 64 views
1

我正在開發一個度假指南網站! 我正在使用一個MySQL數據庫,其中存儲了有關酒店的信息。 我有4個日期字段,以便存儲每個酒店工作的2個可能季節(date_from,date_to,date_from_extra,date_to_extra)。我以如下格式存儲日期:DD/MM,例如:25/12。檢查日期是否在sql中的日期範圍之間(check without year)

我想檢查該網站的第一個日期選擇器的date1和第二個datepicker的date2是否在數據庫的第一範圍(date_from,date_to)或第二範圍(date_from_extra,date_to_extra)之間。

問題是我不會在數據庫日期字段中使用多年,並且難以比較日期,特別是當數據庫中的第一季或第二季在年底沒有完成但它持續更多時,例如(14/11 - 25/02)。

任何幫助? 非常感謝!

+1

猜猜是時候開始添加幾年你的日期字段? :) –

+0

我認爲你需要改變你的表的列類型。除了不在數據庫中存儲Year,我還看到另一個問題。您正在以DD/MM等格式存儲日期。這樣你將無法使用這些字段的索引。您應該使用MM/DD格式進行存儲。如果您以MM/DD格式存儲,您可以編寫直接比較語句,例如'where({$ date}> date_from和{$ date} date_from_extra和{$ date} piyush

回答

0

試試這個

$todayDate = date("Y-m-d"); 
$check_date= strtotime($todayDate); 

使用此varible檢查

SELECT table_fiels FROM table_namE WHERE month(check_date) BETWEEN month($your_db_start_date) AND month($your_db_end_date) AND day(check_date) BETWEEN day($your_db_start_date) AND day($your_db_end_date) 
+0

此代碼無法正常工作,因爲無法瞭解在比較日期中是否有不同的YEARS。例如,如果酒店的工作季節是14/11/25/02,那麼這段代碼會給我25/02至14/11的結果,而不是明年的14/11至25/02的結果,這是正確的 – George

相關問題