2017-09-13 107 views
0

好了,所以我試圖尋找到製作功能,這樣我就可以更新和我的數據庫切換「歡樂時光」上。更新MySQL的行時間之間

原因是,使用戶在此期間獲得額外的東西。

因此,例如,我要的是...星期五和星期六18:00至21:00之間的歡樂時光是在對他們的一週時間的任何一天到幾天就需要關閉。日子和時間只是例子,表明我需要它。

function happy_hour(){ 
global $conn; 
$getDay = time("l"); 
$getHour = time("H:i"); 
if ($getDay == "Wednesday" && $getHour > "12:00") { 
    mysqli_query($conn, "UPDATE Game SET happy_hour = 'yes' WHERE id='1' LIMIT 1"); 
} 
} 

happy_hour(); 

我不知道,如果它可以從PHP時間函數,或者如果完成將需要有存儲了MySQL內的某個時間訪問,然後得到的日期和時間,如果在任何的時間之間2天設置爲開,然後關閉。

謝謝先進。

+0

你可以使用MySQL的活動...... https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html如果你的服務器支持他們和事件調度程序已啓用。 –

+1

爲什麼您需要將其存儲在數據庫中?只需在遊戲頁面上進行日期檢查? – Vindur

+0

我想要使用的就像是一個XP系統,並在不同的頁面上的不同活動,當它們在當天的幾小時之間完成時,例如他們會得到額外的XP,我不知道哪一個是最好的方式。 – BoxyGILLETT

回答

0

如果在烏拉圭回合服務器時間和數據庫服務器是其中u生活一切都會好的一樣。如果沒有ü必須設置時間,並設置bettwen天u可以使用的preg_match像

$天=時間(「L」);

$小時=時間( 「你好」);

如果(的preg_match($日, '/星期五|星期六/')& & $小時> = 1800 & & $小時< = 2100){ 做的東西在這裏 }

+0

當與主機建立服務器時,我選擇了歐洲服務器,由於一年中的時間比客戶端時間晚了1小時,嘗試過這種方法,即使將時間更改爲今天以及它們之間的時間,也無法正常工作。 – BoxyGILLETT

0
$day = gmdate('l'); 
$hour = gmdate('H:i'); 

if ($day == "Wednesday") { 

if ($hour >= "14:26" && $hour <= "18:27") { 
$isextra = true; 
}else{ 
$isextra = false; 
} 
} 

倍只是例子,但得到它的工作,只是在與XP檢查真或假的活動的情況。

if(isset($_POST['getXP'])) { 
if($isextra == "true") { 
$xpgained = 50; 
}else{ 
$xpgained = 20; 
} 

mysqli_query($conn, "UPDATE Account_Character SET rank_xp=rank_xp + '$xpgained' WHERE username='$username' LIMIT 1"); 
} 

這只是我製作的樣本,希望它在真正進入它之前工作。

謝謝你們:)