2013-07-03 77 views
1

內的日期範圍充盈尋找一些幫助,因爲一直掙扎了一會兒。確定是否存在另一個日期範圍

我有日期範圍的表:

"time_from" 2013-06-03 00:00:00, "time_till" 2013-07-03 00:00:00 
"time_from" 2013-05-03 00:00:00, "time_till" 2013-06-03 00:00:00 

然後,我有,你提交一個新的日期範圍的形式。

當表單提交我要檢查新的日期範圍內的任何部分不與任何現有的日期範圍的任何部分發生衝突。

誰能幫助,我不是大驚小怪,這是否是MySQLPHP完成。

感謝

+0

PHP的'strtotime()'可以幫助您:http://php.net/manual/en/function.strtotime.php – bozdoz

回答

1

您可以輕鬆地使用MySQL查詢

select * from table where 
$variable_start BETWEEN time_from AND time_till OR $variable_end BETWEEN time_from AND time_till 
做到這一點

你將有行,如果你的時間落在之間的日期範圍

+0

如何將日期範圍與日期範圍進行比較,因爲我假設您將單個日期範圍與日期範圍進行比較? – Elliot

+0

真棒,你和其他人都似乎現在工作! – Elliot

1

您可以檢查是否該行通過SQL

select if(count(*) >0,'conflicts', 'does not conflict') 
from yourTable 
where ($startTime between time_from and time_till) 
or ($endTime between time_from and time_till) 

具有相同的範圍存在任何輸入日期位於現有的日期範圍,它會顯示衝突否則會造成不衝突

+0

這是如何工作的? – DevZer0

+0

這隻會檢查開始日期和結束日期不衝突。它不會檢查日期之間的任何時間衝突嗎? – Elliot

+0

改變了查詢範圍之間檢查 – chetan

0

中假設意味着有衝突。

你需要檢查每一行:

日期範圍開始時的當前日期範圍開始前犯規秋季和日期範圍結束當前的日期後犯規下跌範圍開始

您的日期範圍目前日期範圍開始前犯規秋季和日期範圍結束當前的日期範圍END

0後犯規下跌

您的日期範圍犯規秋天當前日期範圍結束前在當前日期後犯規落在日期範圍,結束範圍開始

日期範圍啓動當前的日期範圍和你的後犯規回落日期範圍結束不會落在當前日期範圍之前END

相關問題