2012-09-05 87 views
3

好吧,所以我有一個表的結果數組,我們有一個開始和結束時間,我們正在檢索。開始/結束時間將是這個樣子:試圖從秒轉換到日期

1345497551 

現在我想將其轉換爲一個真正的時間,例如1345497551可能成爲2012/05/09 17:23:12什麼的。我發現了一些東西,但沒有一個能夠正常工作。一個解決方案,我試過,根據什麼有人說對這裏的另一個問題,是

$createdate = date('H:i:s',$numberofsecs); 

其中$numberofsecs是時間從陣列中拉出。但是每次我們可以進行測試時,這隻會重複輸出17:00:00

我該如何着手使這項工作正確?

回答

4

假設這是一個標準的UNIX時刻字符串(秒午夜以來1/1/1970),那麼你應該能夠使用date正如你所說,只是修改格式字符串:

echo date('Y/m/d H:i:s', $numberofsecs); 

的例如你提到你總是得到17:00:00的地方可能是因爲你的測試用例都只是日期戳,編碼爲時間戳,並且與GMT有偏移。 。 。

+0

它看起來當我嘗試,它並給我一個日期,但它一定會喜歡不是今天/昨天日期應該是。我用原始帖子中的數字嘗試過這個字符串,我得到了1969年12月31日17:00:00迴應給我。任何其他建議? – Kynian

+0

當我使用上面的'$ numberofsecs'時,我得到'2012/08/20 23:19:11'。我懷疑你有一個錯字,所以你看到將0轉換爲日期的結果。 – Barmar

+0

啊,是的,你是對的我有一個,謝謝!是否有任何理由,如果$ number ofsecs今天被取回,爲什麼它會聲明日期是2012/08/20而不是2012/09/05?但至少它現在檢索正確的東西,謝謝! – Kynian

3

我曾嘗試下面的代碼:

$ts = 1345497551; 
$date = new DateTime("@$ts"); 
echo $date->format('U = Y-m-d H:i:s'); 

輸出:1345497551 = 2012-08-20 21點19分11秒