[問題]遊戲時間設定?

WOG設定安裝教學

版主: 涅魂, 簫哥


涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-19 12:28 am

唔,剛剛找到了一個PHP版本在5以下時的解決方法:用setlocale()

但是這個函式有個很大的問題…就是它設定時使用的字符會因伺服器的設定而有所改變

這是我找來的測試字符的程式,請將他改成PHP程式後執行並將結果貼上,這樣就能知道您的伺服器該用哪種字符了

代碼: 選擇全部
<?php
echo 'xt:Commerce languages define: '.setlocale(LC_TIME, 'zh_TW@UTF-8', 'zh_tw', 'zh-tw', 'zh_TW', 'zh-TW', 'zh_tw.UTF-8', 'zh-tw.UTF-8' , 'zh_TW.UTF-8', 'zh-TW.UTF-8' , 'Taiwan','Chinese_Taiwan').'<br />';
echo 'zh: '.setlocale(LC_TIME,'zh').'<br />';
echo 'ZH: '.setlocale(LC_TIME,'ZH').'<br />';
echo 'TW: '.setlocale(LC_TIME,'TW').'<br />';
echo 'tw: '.setlocale(LC_TIME,'tw').'<br />';
echo 'Chinese: '.setlocale(LC_TIME,'Chinese').'<br />';
echo 'chinese-traditional: '.setlocale(LC_TIME,'chinese-traditional').'<br />';
echo 'Chinese_Taiwan: '.setlocale(LC_TIME,'Chinese_Taiwan').'<br />';
echo 'cht_taiwan: '.setlocale(LC_TIME,'cht_taiwan').'<br />';
?>



圖檔

a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-19 12:38 pm

cheeng 寫:
a0936157248 寫:ACP3.0後台監視玩家最後動作時間和停權之類會出現甚麼時候幾點幾分這些都會用到時間@@ 可是都不準.. 我想用台灣正確時間..

收費空間@@ 好像是國外空間 但是因為提供我空間主機是免費給我@@ 所以對我來說因該算免費= =

請問你知道相差多少小時嗎?



相差4小時@@



a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-19 12:39 pm

涅魂 寫:唔,剛剛找到了一個PHP版本在5以下時的解決方法:用setlocale()

但是這個函式有個很大的問題…就是它設定時使用的字符會因伺服器的設定而有所改變

這是我找來的測試字符的程式,請將他改成PHP程式後執行並將結果貼上,這樣就能知道您的伺服器該用哪種字符了

代碼: 選擇全部
<?php
echo 'xt:Commerce languages define: '.setlocale(LC_TIME, 'zh_TW@UTF-8', 'zh_tw', 'zh-tw', 'zh_TW', 'zh-TW', 'zh_tw.UTF-8', 'zh-tw.UTF-8' , 'zh_TW.UTF-8', 'zh-TW.UTF-8' , 'Taiwan','Chinese_Taiwan').'<br />';
echo 'zh: '.setlocale(LC_TIME,'zh').'<br />';
echo 'ZH: '.setlocale(LC_TIME,'ZH').'<br />';
echo 'TW: '.setlocale(LC_TIME,'TW').'<br />';
echo 'tw: '.setlocale(LC_TIME,'tw').'<br />';
echo 'Chinese: '.setlocale(LC_TIME,'Chinese').'<br />';
echo 'chinese-traditional: '.setlocale(LC_TIME,'chinese-traditional').'<br />';
echo 'Chinese_Taiwan: '.setlocale(LC_TIME,'Chinese_Taiwan').'<br />';
echo 'cht_taiwan: '.setlocale(LC_TIME,'cht_taiwan').'<br />';
?>



這樣就可以更改時間?



cheeng
 
文章: 131
註冊時間: 2005-11-27 12:19 pm
來自: 香港

文章cheeng » 2007-08-19 3:52 pm

a0936157248 寫:
涅魂 寫:唔,剛剛找到了一個PHP版本在5以下時的解決方法:用setlocale()

但是這個函式有個很大的問題…就是它設定時使用的字符會因伺服器的設定而有所改變

這是我找來的測試字符的程式,請將他改成PHP程式後執行並將結果貼上,這樣就能知道您的伺服器該用哪種字符了

代碼: 選擇全部
<?php
echo 'xt:Commerce languages define: '.setlocale(LC_TIME, 'zh_TW@UTF-8', 'zh_tw', 'zh-tw', 'zh_TW', 'zh-TW', 'zh_tw.UTF-8', 'zh-tw.UTF-8' , 'zh_TW.UTF-8', 'zh-TW.UTF-8' , 'Taiwan','Chinese_Taiwan').'<br />';
echo 'zh: '.setlocale(LC_TIME,'zh').'<br />';
echo 'ZH: '.setlocale(LC_TIME,'ZH').'<br />';
echo 'TW: '.setlocale(LC_TIME,'TW').'<br />';
echo 'tw: '.setlocale(LC_TIME,'tw').'<br />';
echo 'Chinese: '.setlocale(LC_TIME,'Chinese').'<br />';
echo 'chinese-traditional: '.setlocale(LC_TIME,'chinese-traditional').'<br />';
echo 'Chinese_Taiwan: '.setlocale(LC_TIME,'Chinese_Taiwan').'<br />';
echo 'cht_taiwan: '.setlocale(LC_TIME,'cht_taiwan').'<br />';
?>



這樣就可以更改時間?

不不..只是找出你系統的字符



a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-19 8:37 pm

原來如此 那這問題不就無解了? @@



cheeng
 
文章: 131
註冊時間: 2005-11-27 12:19 pm
來自: 香港

文章cheeng » 2007-08-19 8:39 pm

[quote="a0936157248"]唔,剛剛找到了一個PHP版本在5以下時的解決方法:用setlocale() quote]
他有解的,,
只是解之前已找出字符出來



a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-19 11:00 pm

xt:Commerce languages define: zh_TW@UTF-8
zh:
ZH:
TW:
tw:
Chinese:
chinese-traditional:
Chinese_Taiwan:
cht_taiwan:

執行涅魂大大的方法 出現這各...




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-20 9:01 pm

那麼請在每個程式都會載入的程式內(config.php或global.php之類的)找個地方加上這個程式碼
代碼: 選擇全部
setlocale(LC_TIME, 'zh_TW@UTF-8');

之後再去看看time()取出來的時間戳記是不是正確的吧~


圖檔

a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-21 1:19 pm

我照涅魂大大把setlocale(LC_TIME, 'zh_TW@UTF-8'); 加入config.php或global.php 可是還是沒有改變時間..




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-21 7:12 pm

您說的是哪個沒有改變?是加入這個函式後再用time()取出來的timestamp仍然錯誤?還是說是舊的紀錄的時間沒有改變?

如果是後者,這是正常的,因為那是已經儲存在資料庫中的資訊,除非再次取出來再做修改,不然不會改變

而若是前者…那還是改用前面提到的差值的方法吧^^"


圖檔

a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

[其它]就是..

文章a0936157248 » 2007-08-22 2:55 pm

就是..圖片上畫上紅圈地方@@ 跟正確時間相差4小時...



使用涅魂大方法還是沒有辦法更正@@


http://gohappy.piano-forever.com/1.bmp




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-22 6:11 pm

所以說~就用補差值的方法來解決吧,這是最快的解決方法了


圖檔

a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-22 11:23 pm

補差值? 如何使用?

還是setlocale(LC_TIME, 'zh_TW@UTF-8');
這各就是補差值@@?




涅魂
 
文章: 4463
註冊時間: 2004-01-04 11:17 am
來自: Taiwan
性別: 男生

文章涅魂 » 2007-08-23 7:53 am

啊我前面講得口乾舌燥不都白說了 囧rz

代碼: 選擇全部
define('TIME',time()-[color=red]偏差值[/color]);

這個就是補差值了,您說您的主機時間比您要的時間(GMT+0800)還要快4小時,所以您的主機的時區就是(GMT+1200)的時區了

所以上面的常數定義就能改成這樣
代碼: 選擇全部
define('TIME',time()-14400);

這樣就能指定TIME常數的值為GMT+0800的timestamp

之後再將您程式中全部的time()全部改成TIME即可(這個工作就交給程式來跑吧XD)


圖檔

a0936157248
 
文章: 61
註冊時間: 2005-07-16 9:56 pm

文章a0936157248 » 2007-08-23 1:55 pm

define('TIME',time()-14400);
那這各要加在哪裡= =?

修改再
acpmain.php
這嘛@@



上一頁下一頁

回到 精華區

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 5 位訪客