[英]PHP Date format when converting from user input (code igniter)
我正在接受用戶在jQuery UI datepicker中輸入的值,並將其轉換為php日期以插入數據庫中,如下所示:
$date_from = post('date_valid_from');
$date_from = date('Y-m-d', strtotime($date_from));
如果輸入以美國格式(mm / dd / yyyy)格式化,則效果很好,但是由於我的系統將被英國人使用,因此需要以英國格式(dd / mm / yyyy)輸入。 將英國日期轉換為php日期時,會切換月份和日期(2014年2月1日-2014年1月2日-變為2014年1月2日,2014年2月28日-2014年2月28日-變為1970年1月1日)。
無論如何,我可以覆蓋默認日期格式以使用英國格式嗎?
(如果可以設置CI配置設置,則該項目正在使用Code Igniter)
使用DateTime()
代替。 它比date()
和strtotime()
更靈活:
$date_from = DateTime::createFromFormat('d/m/Y', $date_from);
$date_from = $date_from->format('Y-m-d');
如果要同時支持兩種格式( mm/dd/yyyy
和dd/mm/yyyy
),只需換出DateTime::createFromFormat()
的第一個參數DateTime::createFromFormat()
。 使用變量會很容易做到。
這是在PHP中進行本地化的一個好例子。
要根據語言環境設置格式化本地時間/日期,可以使用strftime
然后可以使用strptime使用特定格式解析字符串
http://php.net/manual/en/function.strptime.php
有關本地化的更多信息,您也可以檢查此鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.