我有一個基於請求的網站,用戶可以請求項目,我想在一天中的特定時段限制某些請求。在一天中的特定時段禁用項目php
例如,用戶只能在下午5點到晚上8點之間請求item5
。剩下的時間不可用。
我的網站是PHP的MySQL後端。
理想情況下,我會喜歡一個函數,我可以調用一個項目ID,該函數將檢查數據庫中的時間值,並返回true或false值。
這將不勝感激,如果有人有一些示例代碼,我試着按時閱讀PHP的時間,但它炸我的頭。
我有一個基於請求的網站,用戶可以請求項目,我想在一天中的特定時段限制某些請求。在一天中的特定時段禁用項目php
例如,用戶只能在下午5點到晚上8點之間請求item5
。剩下的時間不可用。
我的網站是PHP的MySQL後端。
理想情況下,我會喜歡一個函數,我可以調用一個項目ID,該函數將檢查數據庫中的時間值,並返回true或false值。
這將不勝感激,如果有人有一些示例代碼,我試着按時閱讀PHP的時間,但它炸我的頭。
您可以使用time()數據類型在startTime和endTime字段中彈出數據庫。進入這些領域,輸入他們可用的時間以及他們必須回來的時間。
然後,查詢獲取可用項目是一件簡單的事情。
tableAvailability
|--------------------------------|
| id | availStart | availEnd |
|--------------------------------|
| 1 | 15:00:00 | 18:00:00 |
| 2 | 12:00:00 | 12:30:00 |
|--------------------------------|
$startTime='15:30:00';
$requiredTime=2; // Showing Hours for example
$sql="
select
id
from
tableAvailability
where
".$startTime." >= availStart
and addTime('".$startTime."', '".$requiredTime.":00:00')<availEnd";
我基本上已經做到了這一點,似乎工作,你知道什麼最好的辦法是轉換爲gmt?使用我有$ now = date('H:i:s')的時間格式;謝謝 – Guernica 2012-07-09 02:08:30
如果您的用戶將沿着不同的時區分佈,請讓他們在當地時區輸入並進行修改。您還可以使用http://php.net/manual/en/function.date-default-timezone-set.php來設置PHP計算的時區,或者在php.ini文件中對其進行配置。 – Fluffeh 2012-07-09 03:22:34
我在PHP中設置時區,只是從它的工作,代碼將只從一個內部位置執行,所以這是足夠的謝謝 – Guernica 2012-07-09 23:15:42
這裏假定數據庫在項目表中有兩列,分別叫做available_start
和available_end
。這兩種都假定爲DATETIME。
function isItemAvailableNow(item_id){
# Globals are bad but this gets the point across
global $db;
# Get the item from the database
$result = mysql_query("SELECT * FROM items WHERE id = " . mysql_real_escape_string(item_id, $db) . ";");
$row = mysql_fetch_assoc($result);
# Pull the beginning and ending availablity time out of the database result
$available_start = $row['available_start']
$available_end = $row['available_end']
# Get the current time in the same format as the MySQL DATETIME type
$now = date('%Y-%m-%d %H:%i:%s');
return ($now >= $available_start) && ($now <= $available_end);
}
這段代碼還沒有經過測試,我做了一些假設(如你使用MySQL),但這應該讓你開始。
您還需要考慮時區,但這是另一個討論。
time()
,date()
,也許mktime()
是你所需要的。只需在與時間範圍內的時刻,你允許/禁止觀看內容
PHP date() manual比較時 - 這是一個真正的強大功能
還有一個時區的問題,你可能會考慮
你有什麼至今?你的數據庫的結構是什麼? – 2012-07-09 00:47:00