簡體   English   中英

從用戶輸入轉換時的PHP日期格式(代碼點火器)

[英]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/yyyydd/mm/yyyy ),只需換出DateTime::createFromFormat()的第一個參數DateTime::createFromFormat() 使用變量會很容易做到。

這是在PHP中進行本地化的一個好例子。

要根據語言環境設置格式化本地時間/日期,可以使用strftime

http://php.net/strftime

然后可以使用strptime使用特定格式解析字符串

http://php.net/manual/en/function.strptime.php

有關本地化的更多信息,您也可以檢查此鏈接。

http://php.net/manual/en/function.setlocale.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM