![](/img/trans.png)
[英]Is there an easy way to get a Unix timestamp from an SQL timestamp in php?
[英]What is the simplest way to format a timestamp from SQL in PHP?
什么是最簡單,最快速的方法來完成下面的PHP代碼,使輸出采用用戶友好的格式(例如,“2006年10月27日”)?
$result = mysql_query("SELECT my_timestamp FROM some_table WHERE id=42", $DB_CONN);
$row = mysql_fetch_array($result);
$formatted_date = ???($row['my_timestamp']);
echo $formatted_date;
您可以使用MySQL為您執行此操作,
$result = mysql_query("SELECT DATE_FORMAT(my_timestamp, '%M %d, %Y) AS my_timestamp FROM some_table WHERE id=42", $DB_CONN);
$row = mysql_fetch_array($result);
$formatted_date = $row['my_timestamp'];
echo $formatted_date;
或者使用PHP,
$result = mysql_query("SELECT my_timestamp FROM some_table WHERE id=42", $DB_CONN);
$row = mysql_fetch_array($result);
$formatted_date = strftime('%B %d, %y', $row['my_timestamp']);
echo $formatted_date;
你想要date()函數。
如果您有DATE或DATETIME列,則可以使用SELECT UNIX_TIMESTAMP(mycolumn)AS mycolumn將其轉換為要使用的日期函數的unix時間戳。
你應該使用DateTime類(或任何home增長的等效類),over de Date函數,而不是使用timestamps:
在一天結束時,不要依賴時間戳,除非你是在英語環境中,並且只處理1970年到2032年之間的日期......!
如果您的表在該日期字段上編入索引,並且您在調用中使用了mysql數據格式函數..(即.. SELECT DATE_FORMAT(my_timestamp,'%M%d,%Y)AS my_time)它將破壞您的索引。 要記住的事情。 我們已經看到從sql語句中刪除所有功能並讓php處理所有功能的速度顯着提高。 功能如格式化日期和簡單的數學
我用:
日期(“F j,Y”,strtotime($ row ['my_timestamp']))
或者您可以將SELECT更改為:DATE_FORMAT(字段,'%d%M,%Y')作為日期時間
你有一個選擇。 您可以在PHP中使用date()函數並處理MySQL的輸出,或者您可以在MySQL中使用date_format()函數並讓它返回一個格式化的字符串。
根據我的經驗,你使用哪個並不重要,但要保持一致。 它們具有不同的格式參數,因此如果您在給定的應用程序中同時使用它們,您將花費大量時間來記住“W”是否為您提供了星期幾或一年中的星期的名稱。
讓數據庫為您執行格式化。 它不容易出錯,因為你沒有讀取字符串並進行轉換。 相反,數據庫將從其本機格式轉換為字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.