2016-02-23 45 views
2

我必須使用fullcalendar檢查當前時間和日期是否有事件,但不起作用...所以出現了什麼問題?
謝謝日期時間forma +區域FullCalender介於NOW()

startdate VARCHAR 
enddate VARCHAR 
ex. format = 2016-02-22T00:30:00+05:30 

我的查詢錯誤:

SELECT * from calendar WHERE startdate >= NOW() and enddate <= NOW() 
+0

MySQL是會讀,作爲一個字符串,而不是日期時間。您應該使用日期時間,然後根據需要將其格式化爲輸出。同樣,一旦它是一個日期時間,你可以使用'between'函數。 '現在()在startdate和enddate'之間。 http://dev.mysql.com/doc/refman/5.7/en/comparison-operators.html#operator_between – chris85

+0

我知道,但fullcalendar功能需要這種格式,我不能更改fullcalendar一個查詢,感謝您的答覆 –

+0

Fullcalendar從來沒有談論過'mysql'(我認爲,基於標籤描述聲音,如JS,所以客戶端)只是格式化PHP中的字符串,你餵它。 – chris85

回答

1

MySQL的NOW()函數返回日期與Y-M-d H:我:s格式。在這裏你必須將你的開始和結束日期轉換爲Y-m-d H:i:s格式。

在PHP代碼

轉換您的日期,以給定的格式一樣

$start = new DateTime('2016-02-22T00:30:00+05:30'); 
$startdate = $start->format('Y-m-d H:i:s'); 

$end = new DateTime('2016-02-22T00:30:00+05:30'); 
$enddate = $end->format('Y-m-d H:i:s'); 

現在在mysql中使用這種格式的日期

SELECT * from calendar WHERE $startdate >= NOW() and $enddate <= NOW() 
相關問題