我通過TIMESTAMP和默認值UNIX_TIMESTAMP存儲在mysql中的條目的日期,但是當我把它帶回它是2011-08-16 11:43:52如果我嘗試使用UNIX時間戳和MYSQL
<?= date('F j, o', $a['time']) ?>
它只是從零,帶回12月31日的時間戳,1970年
爲什麼?我該如何解決它?
我通過TIMESTAMP和默認值UNIX_TIMESTAMP存儲在mysql中的條目的日期,但是當我把它帶回它是2011-08-16 11:43:52如果我嘗試使用UNIX時間戳和MYSQL
<?= date('F j, o', $a['time']) ?>
它只是從零,帶回12月31日的時間戳,1970年
爲什麼?我該如何解決它?
MySQL TIMSTAMP
列存儲爲YYYY-MM-DD HH-MM-SS
,即使您輸入UNIX_TIMESTAMP
它仍將以該格式存儲。
所以你可以做的是:
<?= date('F j, o', strtotime($a['time'])) ?>
更好的選擇它作爲一個時間戳直接從MySQL,而不是強制3路mysql內部 - >時間戳 - >字符串 - > PHP strtotime轉換系列。 –
@MarcB - 這可能是對的。 – Neal
使用
SELECT UNIX_TIMESTAMP(field)
當UNIX_TIMESTAMP()
是在TIMESTAMP
列,該函數直接返回內部時間戳值,沒有隱含的「字符串到Unix時間戳」轉換。
date()
需要數量,而不是一個字符串。無論MySQL的內部表示如何,MySQL總是以字符串的形式返回日期。試試這個:
<?php echo date("F j, o", strtotime($a['time']); ?>
你能展示你用來回收的代碼嗎? –
你確定$ a ['time']被定義,它不是$ a ['unix_time']什麼的?這將做到這一點。 – djhaskin987