2009-12-01 43 views
4

採取下面的代碼一看:PHP INT最新問題

$t=77; 
date("H:i:s", $t); 

它返回

21:01:17 

正確的結果,當然,應該是這樣的0時01分17秒。

$ t值確實是由YouTube GData API,trought($videoEntry->getVideoDuration())返回的數值。

如何解決這個問題?

回答

8

日期是特定於時區的。您需要將其設置爲GMT以獲得您想要的結果。

date_default_timezone_set('GMT'); 
$t=77; 
echo date("H:i:s", $t); 
+0

確定GMT或UTC正常工作。 thx – 2009-12-01 18:54:50

-1

嘗試設置GMT時區。

date_default_timezone_set('Europe/London'); 
+1

倫敦的時間不是格林威治標準時間的一部分時間? – Atli 2009-12-01 18:54:37

+0

設置爲歐洲/倫敦返回01:01:17。見下面的解決方案 – 2009-12-01 18:55:33

2

的第二個參數的日期()是一個Unix時間戳 - 換句話說,它是一個數字的自1970年1月1日,秒調整到什麼PHP被設置爲一個時區(可以與date_default_timezone_set被設置)。

-1

我認爲,如果你在第二個值,那麼你應該使用mktime函數,那麼它會給出正確的結果。例如:

$t=77; 
echo date("H:i:s", mktime(0,0,$t)); 
+1

嘿。 'mktime'函數創建一個時間戳記 - 自從1970-01-01開始的秒數 - 並且只用秒值就可以創建一個時間戳,在當時的特定時間。例如。 '2009-12-01 00:01:17' *(使用GMT)*。其中,如果您只對時間值感興趣,則不會改變。你發佈的內容實際上等於'$ t = 77;回聲日期(「H:i:s」,$ t);'。 – Atli 2009-12-01 19:18:26

+0

嗨Atli ...你是對的......謝謝澄清 – 2009-12-02 18:26:27