-
涅魂
-
- 文章: 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 />'; ?>
這樣就可以更改時間?
不不..只是找出你系統的字符
-
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仍然錯誤?還是說是舊的紀錄的時間沒有改變?
如果是後者,這是正常的,因為那是已經儲存在資料庫中的資訊,除非再次取出來再做修改,不然不會改變
而若是前者…那還是改用前面提到的差值的方法吧^^"
-
涅魂
-
- 文章: 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
這嘛@@
|