採取下面的代碼一看:PHP INT最新問題
$t=77;
date("H:i:s", $t);
它返回
21:01:17
正確的結果,當然,應該是這樣的0時01分17秒。
$ t值確實是由YouTube GData API,trought($videoEntry->getVideoDuration())
返回的數值。
如何解決這個問題?
採取下面的代碼一看:PHP INT最新問題
$t=77;
date("H:i:s", $t);
它返回
21:01:17
正確的結果,當然,應該是這樣的0時01分17秒。
$ t值確實是由YouTube GData API,trought($videoEntry->getVideoDuration())
返回的數值。
如何解決這個問題?
日期是特定於時區的。您需要將其設置爲GMT以獲得您想要的結果。
date_default_timezone_set('GMT');
$t=77;
echo date("H:i:s", $t);
嘗試設置GMT時區。
date_default_timezone_set('Europe/London');
倫敦的時間不是格林威治標準時間的一部分時間? – Atli 2009-12-01 18:54:37
設置爲歐洲/倫敦返回01:01:17。見下面的解決方案 – 2009-12-01 18:55:33
的第二個參數的日期()是一個Unix時間戳 - 換句話說,它是一個數字的自1970年1月1日,秒調整到什麼PHP被設置爲一個時區(可以與date_default_timezone_set被設置)。
我認爲,如果你在第二個值,那麼你應該使用mktime函數,那麼它會給出正確的結果。例如:
$t=77;
echo date("H:i:s", mktime(0,0,$t));
嘿。 'mktime'函數創建一個時間戳記 - 自從1970-01-01開始的秒數 - 並且只用秒值就可以創建一個時間戳,在當時的特定時間。例如。 '2009-12-01 00:01:17' *(使用GMT)*。其中,如果您只對時間值感興趣,則不會改變。你發佈的內容實際上等於'$ t = 77;回聲日期(「H:i:s」,$ t);'。 – Atli 2009-12-01 19:18:26
嗨Atli ...你是對的......謝謝澄清 – 2009-12-02 18:26:27
確定GMT或UTC正常工作。 thx – 2009-12-01 18:54:50