簡體   English   中英

如何從 PHP 中的縮寫非英語格式獲取標准化日期/時間?

[英]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.

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