php輸出英文時間日期的安全方法(rfc 1123格式)
來源:易賢網 閱讀:2088 次 日期:2014-07-31 11:46:07
溫馨提示:易賢網小編為您整理了“php輸出英文時間日期的安全方法(rfc 1123格式)”,方便廣大網友查閱!

最近項目中要為一個rest服務寫客戶端,其中的簽名校驗需要在http header中生成一個rfc 1123格式的date。

這個問題比較好解決,簡單翻閱了php文檔,使用gmstrftime這個函數就能解決。

代碼如下:

string gmstrftime ( string $format [, int $timestamp = time() ] )

調用的代碼如下:

代碼如下:

echo gmstrftime(%a, %d %b %y %t %z,time());

//輸出:tue, 01 apr 2014 16:16:07 gmt

調試過程中發(fā)現,在另外一臺電腦上,輸出并不像預期中的結果,然后產生了中文:

代碼如下:

二, 01  4 2014 16:20:02 gmt

繼續(xù)翻閱文檔,發(fā)現文檔的注釋中有說明,這個函數的結果受setlocale結果的影響,既收當前系統默認的語言的影響。使用下面的命令可以查看當前系統已安裝的語言:

代碼如下:

locale -a

那么根據剛剛分析的結果,將setlocale強制指定為英語就沒問題了,代碼如下:

代碼如下:

setlocale(lc_time, 'en_us');

echo gmstrftime(%a, %d %b %y %t %z,time());

至此文章應該已經結束了,不過可惜的是測試用的ubuntu機器上,因為是live cd版,恰好沒有en_us這個語言,但是有一個en_us.utf-8。這個時候心理打鼓,這種做法似乎不太安全,我沒辦法確定運行代碼的客戶機上,到底有en_us還是有en_us.utf-8。還好看到文檔里的一段comments,可以用gmdate來代替,該函數不受setlocale結果的影響:

代碼如下:

gmdate('d, d m y h:i:s') . ' gmt';

case closed~需求雖小,要寫好并不容易,以后還要多加努力。

更多信息請查看IT技術專欄

更多信息請查看網絡編程

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網