2011-08-16 232 views
1

我通過TIMESTAMP和默認值UNIX_TIMESTAMP存儲在mysql中的條目的日期,但是當我把它帶回它是2011-08-16 11:43:52如果我嘗試使用UNIX時間戳和MYSQL

<?= date('F j, o', $a['time']) ?> 

它只是從零,帶回12月31日的時間戳,1970年

爲什麼?我該如何解決它?

+0

你能展示你用來回收的代碼嗎? –

+0

你確定$ a ['time']被定義,它不是$ a ['unix_time']什麼的?這將做到這一點。 – djhaskin987

回答

1

MySQL TIMSTAMP列存儲爲YYYY-MM-DD HH-MM-SS,即使您輸入UNIX_TIMESTAMP它仍將以該格式存儲。

所以你可以做的是:

<?= date('F j, o', strtotime($a['time'])) ?> 

演示:http://codepad.org/jBLR2KpH

+0

更好的選擇它作爲一個時間戳直接從MySQL,而不是強制3路mysql內部 - >時間戳 - >字符串 - > PHP strtotime轉換系列。 –

+0

@MarcB - 這可能是對的。 – Neal

4

使用

SELECT UNIX_TIMESTAMP(field) 

UNIX_TIMESTAMP()是在TIMESTAMP列,該函數直接返回內部時間戳值,沒有隱含的「字符串到Unix時間戳」轉換。

Manual

0

date()需要數量,而不是一個字符串。無論MySQL的內部表示如何,MySQL總是以字符串的形式返回日期。試試這個:

<?php echo date("F j, o", strtotime($a['time']); ?>