記錄下項目遇到的問題和解決方案。
1. 顯示中文
在PHP頁面顯示的時候,我們通常需要在開頭加入下面的代碼來讓我們的頁面能正確顯示中文:
是的,讓頁面顯示UTF-8, 這樣我們在寫諸如此類的php代碼時 echo '哈哈哈';
就能正確的在頁面上顯示中文了。 但是這樣會有一個問題,我們儲存到資料庫時,如果直接寫入中文,會導致在資料庫裡面看起來是這樣的:
這樣雖然你從PHP頁面上列印出來的內容是爭取的,可是如果你直接查看資料庫的話,就不懂是什麼內容了。
同樣的,如果你在資料庫裡面輸入的是能看懂的GBK編碼的中文,如果用頁面列印就變成了這樣
那到底改怎麼辦?我們想要找到一種方法,要同時滿足:
1. 通過php代碼 echo直接可以列印出來中文
2. 在資料庫裡面顯示的是能看懂的中文
3. 讀取資料庫到頁面顯示時也是能看懂的中文
毫無疑問,要想滿足第1條,那麼我們在開頭毫無疑問要加入:
那如何將UTF-8編碼的中文儲存到資料庫後我們可以看懂呢?這裡就需要進行兩次轉換了,UTF-8和GBK之間的轉換了。 在我們從頁面的內容(UTF-8編碼)存到資料庫(GBK)時和從資料庫(GBK)讀出到頁面(UTF-8):
我們只需要用到這個函數:
iconv()
想要瞭解關於這個函數更多的內容請點擊:
PHP:iconv- Manual
所以,我們在輸入到資料庫時,進行下列的轉換:
同理,如果是從資料庫讀出來到頁面,我們就進行gbk到utf-8的轉換。
2. PHP:date()函數
date函數是用來從時間戳記換算成我們想要的日期格式然後列印出來,這裡主要記錄一下各個單詞代表的含義:
參數如下:a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 幾日,二位元字,若不足二位則前面補零; 如: "01" 至 "31" D - 星期幾,三個英文字母; 如: "Fri" F - 月份,英文全名; 如: "January" h - 12 小時制的小時; 如: "01" 至 "12" H - 24 小時制的小時; 如: "00" 至 "23" g - 12 小時制的小時,不足二位不補零; 如: "1" 至 12" G - 24 小時制的小時,不足二位不補零; 如: "0" 至 "23" i - 分鐘; 如: "00" 至 "59" j - 幾日,二位元字,若不足二位不補零; 如: "1" 至 "31" l - 星期幾,英文全名; 如: "Friday" m - 月份,二位元字,若不足二位則在前面補零; 如: "01" 至 "12" n - 月份,二位元字,若不足二位則不補零; 如: "1" 至 "12" M - 月份,三個英文字母; 如: "Jan" s - 秒; 如: "00" 至 "59" S - 字尾加英文序數,二個英文字母; 如: "th","nd" t - 指定月份的天數; 如: "28" 至 "31" U - 總秒數 w - 數字型的星期幾,如: "0" (星期日) 至 "6" (星期六) Y - 年,四位元字; 如: "1999" y - 年,二位元字; 如: "99" z - 一年中的第幾天; 如: "0" 至 "365" 如果顯示的時間與系統不一致,就要改PHP.ini設定檔。系統預設是UTC時間 可以開啟php.inc 設定 date.timezone = PRC
所以,如果我們想要輸出例如 2015年05月27日 15:45格式的時間,我們就需要這樣寫: echo date('Y年m月j日, H:i', $suggestions['suggestion_time']);
想要輸出其他格式的,參照上面的各個參數就好了!