2012-02-28 15 views
0

私のニーズに合った日付形式を変更するのに10時間近くかかりましたが、成功できませんでした。私は以下の例でPreg_Replace Strotime関数を試しました。PHPの正規表現で日付の形式を変更する

現在の日付の形式は次のとおりです。2006年2月25日 はに変換したい:ここでは2006年2月25日

は、私が試してみました例のリストは以下のとおりです。

publishdate = "02-20-2012"; 
echo preg_replace("/\d{2}-\d{2}-\d{4}/","$3/$1/$2",$publishdate); 

$dateString= '2006-09-14'; 
echo date("m/d/Y", strtotime($dateString)); 



$dateString1= '02-20-2012'; 
echo date("Y/m/d", strtotime($dateString1)); 



$date1 = '05-25-2010'; 
echo date('Y-m-d', strtotime($date1)); 

$dateString2= '02-20-2012'; 
echo preg_replace("/(\d{2})-(\d{4})-(\d{2})/","$2/$3/$1",$dateString2); 

答えて

1

広告正規表現:

代替式で部分一致を使用する場合は、正規表現にキャプチャグループをマークする必要があります。正規表現パターンの部分をカッコで囲むことでそうすることができます。あなたの正規表現は/(\d{2})-(\d{2})-(\d{4})/になるはずです。 regexp docsの詳細、特にsubpatternsのセクションをご覧ください。

広告のstrtotime:

日付部分の区切りとして-を選択した場合、日必見が最初に来ます。従って02/20/201220-02-2012と同様に動作し、02-20-2012は動作しません。サポートされている日付/時刻形式の詳細についてはdocsを参照してください。

0

最も簡単な方法は、date_create_from_formatを使用することです:

$date1='02-25-2006'; 
echo($date1); 
echo "<br>"; 
$newdate = date_format(date_create_from_format('m-d-Y', $date1),'Y-m-d'); 
echo $newdate; 

その後、出力は2006-02-25になります。

関連する問題