2012-03-15 106 views
1

基本上我在找一個時間戳字段從轉換:2012-03-14 23:14:58格式的(更易讀)23:14 pm March 15, 2012轉換MySQL的時間戳更可讀的格式

我已經通過這個tutorial,但是我真的無法讓我的頭靠近它。我已經包含了我用來解析MySQL數據庫數據到Android應用程序的當前PHP腳本。

<?php 
$con = mysql_connect("*******", "*******", "*******"); 

if(!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("bluebase", $con); 


$q=mysql_query("SELECT * from Comments where Category = 'General' ORDER BY Timestamp DESC"); 

while($e=mysql_fetch_assoc($q)) 

     $output['General'][]=$e; 

    print(json_encode($output)); 

mysql_close(); 

>

+1

23:14 pm是冗餘冗餘。你不想要11點14分? – 2012-03-15 13:53:49

+0

你也可以使用MySQL的DATE_FORMAT函數 - http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format – Devart 2012-03-15 13:57:14

+0

重複的[什麼是最簡單的方法從PHP中的SQL格式化時間戳?](http://stackoverflow.com/questions/238071/what-is-the-simplest-way-to-format-a-timestamp-from-sql-in-php) – 2012-03-15 14:02:45

回答

3

有一些你可以採取的路徑。我一直在做的是將時間存儲在數據庫中作爲Unix時間戳,因爲從那裏轉換很簡單。如果您的數據庫中已有數據,並且要更改它已爲時過晚(或者您在數據庫中使用該格式的日期還有其他原因),那麼您需要將時間轉換爲unix時間戳,以便它可用於PHP日期函數:

while($e=mysql_fetch_assoc($q)) { 
    $e['Timestamp'] = date('h:i a F d, Y', strtotime($e['Timestamp'])); 
    $output['General'][]=$e; 
} 

...用重新格式化的時間戳覆蓋時間戳字段。

+0

完美!工作過一次感謝一堆:) – SmilingBlue 2012-03-15 14:09:57

0

這會做的伎倆:

<?php 
    echo date('H:i a F j, Y', strtotime($timestamp)); 
?> 
+0

你的參數是倒退的,時間戳本身在這裏也不起作用。你需要先把它變成秒。 – Crashspeeder 2012-03-15 13:57:15

+0

你的函數參數是向後的。 – 2012-03-15 13:57:35

+0

它總是值得閱讀問題的身體... – 2012-03-15 14:01:38

0

date('h:i a F d, Y', strtotime('2012-03-14 23:14:58'));

注意, 'd' 爲帶有前導零的日期。

和「h」是12小時制,因爲你想要顯示AM/PM

如果你不想前導零,使用數字日「J」和「G」爲12小時格式小時數。

+0

爲什麼你硬編碼2012而不是使用'Y'? – Crashspeeder 2012-03-15 13:58:38

+0

@Milo我到底在哪裏把它放在代碼中? – SmilingBlue 2012-03-15 14:03:13

+0

@SmilingBlue查看Jason的回答。他把它放在你的代碼中。 – 2012-03-15 14:08:15

0

您可以使用date()來設置所需的日期格式。只需使用

date('H:i a F d, Y', strtotime($timestamp)); 

雖然作爲邁洛問題的評論中指出,沒有理由使用24小時格式和AM/PM。

相關問題