[英]How to get standardised date/time from abbreviated non-English format in PHP?
我有一個類似Sett21
的輸入日期字符串,它是意大利語的,我需要得到一個標准化的格式,比如 01/09/2021。
有沒有辦法從縮寫的非英語字符串創建日期? 我正在嘗試使用 Carbon,它可以處理英文縮寫的日期字符串:
$date = Carbon::create("Sept2021");
輸出: Wednesday, September 1, 2021 12:00 AM
但是它失敗了意大利語縮寫的月份Sett
。
通過帶有意大利月份名稱的數組解決方案,如 CBroe 的評論中所示。
$input = 'Sett21';
$list = 'genn,febbr,mar,apr,magg,giugno,luglio,ag,sett,ott,nov,dic';
foreach(explode(',',$list) as $key => $month){
$in = preg_replace('~'.$month.'~iu',($key+1)." ",$input);
if($in !== $input) break;
}
$date = Carbon::createFromFormat('!m y',$in);
echo $date;
//or
$dateTime = DateTime::createFromFormat('!m y',$in);
echo "\n";
echo $dateTime->format('Y-m-d H:i:s');
輸出:
2021-09-01 00:00:00
2021-09-01 00:00:00
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.