2013-08-21 20 views
0

大多數人可能會發現這個重複(幾乎)的問題,但我無法在所有那些討論中找到解決方案。從mysql獲取時間並以任何我們想要的格式回顯它 - php

我在類型= DATETIME的mysql數據庫中有一列,它將時間保存爲2013-08-21 20:26:12。現在

,我可以附和原樣,即PHP頁面上2013年8月21日20時26分12秒,但我想呼應它在以下格式:

  1. 8月21日
  2. 2013年8月21日
  3. 下午8:26,週三 - 2013年8月21日

請告訴我,如果這可以從獲取數據庫的時間之後完成並應用一些PHP函數,或者我們可以在做從數據庫中獲取時間? 又如何?

感謝

**更新:也許,如果我可以使用能夠以日期時間生成();在PHP,並將其存儲在MySQL數據庫中的時間,讓我們可以在它上面做時間查詢,如搜索等

回答

8

使用strtotime()到你的時間字符串轉換爲一個時間戳,然後使用date()函數將其轉換爲所需要的格式。

$str = '2013-08-21 20:26:12'; 
echo date('d M ', strtotime($str)); 
echo date('d M Y', strtotime($str)); 
echo date('h:m A, l - d M Y', strtotime($str)); 

輸出:

21 Aug 
21 Aug 2013 
08:08 PM, Wednesday - 21 Aug 2013 

應該讓你開始那。有關更多選項,請參閱date()功能文檔。

Demo!

+0

+用'date()'顯示'strtotime()'。 –

+0

非常感謝, 你展示它快速,簡單,準確,我想要的:) – Junaid

2

請告訴我這是否可以獲取從數據庫的時間之後完成並應用一些PHP函數,或者我們可以在從數據庫中提取時執行它?如何?

  1. 使用DATE_FORMAT()在MySQL:

    SELECT DATE_FORMAT(my_column, '%D %b'     ) FROM my_table; 
    SELECT DATE_FORMAT(my_column, '%D %M, %Y'    ) FROM my_table; 
    SELECT DATE_FORMAT(my_column, '%l:%i %p, %W - %D %M, %Y') FROM my_table; 
    
  2. 使用date()在PHP中:

    date('jS M',    $ts); 
    date('jS F, Y',   $ts); 
    date('g:i A, l - jS F, Y', $ts); 
    

    (凡$ts已從字段值創建,使用類似strtotime()UNIX_TIMESTAMP())。

+0

@JasonMcCreary:好一點。編輯。 – eggyal

+0

謝謝你的正確的工具,我得到它的工作 - 感謝一羣 – Junaid

1
21st Aug 
21st August, 2013 
8:26 PM, Wednesday - 21st August, 2013 



$date="2013-08-21 20:26:12"; 

date("jS M",strtotime($date)); 
date("jS F, Y",strtotime($date)); 
date("h:i A, l - jS F, Y",strtotime($date)); 
0

DateTime類和Date formatting options將幫助你這一點: -

$dateStr = '2013-08-21 20:26:12'; 
$date = new \DateTime($dateStr); 
echo $date->format('dS M'); 
echo $date->format('dS F, Y'); 
echo $date->format('h:i A l - dS F, Y'); 

輸出: -

8月21日
2013年8月21日
下午8時26日 - 2013年8月21日

Working example

相關問題