PHPの日付関数を逆にする方法を誰かが知っているのだろうかと思いました。たとえば、日/月/年/時間を印刷したい場合は、次のようにします。
date("d jS M, Y", strtotime("2012-01-01 12:12:12"));
2012年1月1日土曜日12.12pmの場合、これを逆にして「2012-01-0112:12:12」を出力する方法はありますか。
前もって感謝します。
PHPの日付関数を逆にする方法を誰かが知っているのだろうかと思いました。たとえば、日/月/年/時間を印刷したい場合は、次のようにします。
date("d jS M, Y", strtotime("2012-01-01 12:12:12"));
2012年1月1日土曜日12.12pmの場合、これを逆にして「2012-01-0112:12:12」を出力する方法はありますか。
前もって感謝します。
PHP のDateTime
classを見てください。古いスタイルの関数よりもはるかに柔軟で、date()
友達です。
あなたの場合、必要なようですDateTime::createFromFormat()
。この関数は、既知の形式の入力日付文字列がある場合に最適です。古いスタイルのstrtotime()
関数では、フォーマットを指定できなかったので、それを自分で解決する必要がありました (場合によっては、間違った推測をしました)。
この例はマニュアルページからのものです:
$format = 'Y-m-d H:i:s';
$date = DateTime::createFromFormat($format, '2009-02-15 15:16:17');
echo "Format: $format; " . $date->format('Y-m-d H:i:s') . "\n";
で受け入れられるフォーマット文字列はcreateFromFormat
、古い関数でよく知られているものと同じタイプdate()
なので、出力したい場合のフォーマットを考えれば、解決策が得られます。
したがって、質問で指定した形式を考えると、次のように書くことができます。
$inputDateString = "Sat 1st January, 2012 12.12pm";
$dateObject = DateTime::createFromFormat("D jS M, Y h.ia",$inputDateString);
print $dateObject->format('Y-m-d H:i:s');
これは出力されます2012-01-01 12:12:00
それが役立つことを願っています。