我有列名爲postDate
定義爲時間戳。 當我直接打印:格式mysql使用php的時間戳
echo $result['postDate'];
我做得到,什麼是存儲 在另一方面,當我打印通過日期的功能(例如2011-03-16 16:48:24
):
echo date('F/j/Y',$result['postDate'])
我得到December/31/1969
我在做什麼錯?
非常感謝
我有列名爲postDate
定義爲時間戳。 當我直接打印:格式mysql使用php的時間戳
echo $result['postDate'];
我做得到,什麼是存儲 在另一方面,當我打印通過日期的功能(例如2011-03-16 16:48:24
):
echo date('F/j/Y',$result['postDate'])
我得到December/31/1969
我在做什麼錯?
非常感謝
試試這個。
date('F/j/Y',strtotime($result['postDate']));
作爲時間戳是必需的,沒有格式化日期作爲第二個參數。 或者你也可以嘗試
SELECT UNIX_TIMESTAMP(postDate) as postDateInt from myTable
,而不是SELECT postDate from myTable
,然後在你的代碼都沒有了。
date('F/j/Y',$result['postDateInt']);
的PHP date函數查找一個int time()
作爲第二PARAM。嘗試使用strtotime()
echo date('F/j/Y', strtotime($result['postDate']));
這是有用的知道,非常感謝 – 2011-03-17 13:07:09
的PHP`日期()」功能預計用於第二參數的數目 - 即一個Unix時間戳。
您可以使用strtotime()
函數將SQL日期字符串(或幾乎任何其他日期字符串)轉換爲PHP中的時間戳。至少有兩個其他答案已經提出這個建議。
但是,我建議你最好先將數據以unix時間戳格式從數據庫中取出。您可以通過使用MySQL UNIX_TIMESTAMP()
功能查詢做到這一點,如下所示:
SELECT UNIX_TIMESTAMP(mydatefield) AS mydatefield_timestamp FROM mytable
..obviously,取代了字段和表名作爲合適的。
然後你會得到時間戳格式日期在PHP中,你返回的數據集,你可以直接進入date()
功能如下:
echo date('F/j/Y',$result['mydatefield_timestamp']);
希望有所幫助。
爲什麼不根據需要在MySQL查詢中格式化日期?
SELECT DATE_FORMAT(postDate, '%M/%D/%Y') as date from table
這似乎是迄今爲止最簡單的解決方案:D – 2016-12-17 01:47:48
不錯的提示,使它工作 – 2011-03-17 13:06:48
嗯,做得好你打我一拳。爲你+1。我還推薦UNIX_TIMESTAMP()。當我開始我的答案時,你只有strtitime(),但是當我發佈它時,你還添加了SQL位。 – Spudley 2011-03-17 13:15:24
偉大的思想想象一樣... hi5 @Spudley – DhruvPathak 2011-03-17 13:18:10