文字列から日付をパースする

PHP:
文字列から日付をパースする

方法:

PHPの組み込みDateTimeクラスは、日付をパースして操作するための強力な機能セットを提供します。コンストラクタを使って日付文字列からDateTimeインスタンスを作成し、必要に応じてフォーマットできます。以下の方法です:

$dateString = "2023-04-25 15:30:00";
$dateObject = new DateTime($dateString);

echo $dateObject->format('Y-m-d H:i:s');
// 出力:2023-04-25 15:30:00

非標準フォーマットの文字列を扱う場合、入力日付の正確なフォーマットを指定できるcreateFromFormatメソッドを使用できます:

$dateString = "25-04-2023 3:30 PM";
$dateObject = DateTime::createFromFormat('d-m-Y g:i A', $dateString);

echo $dateObject->format('Y-m-d H:i:s');
// 出力:2023-04-25 15:30:00

DateTimeによって直接サポートされないようなより複雑なパースを行う場合、PHPは英文の日時記述をUnixタイムスタンプに変換しようとするstrtotime関数を提供しています:

$timestamp = strtotime("next Thursday");
echo date('Y-m-d', $timestamp);
// 現在の日付によって出力は異なります。例:"2023-05-04"

サードパーティのライブラリを使用する:

PHPの組み込み関数は幅広いユースケースをカバーしていますが、時にはより洗練されたパース機能が必要になることがあります。PHPのDateTimeクラスの拡張であるCarbonライブラリは、日付/時間の操作に関する豊富な機能セットを提供します:

require 'vendor/autoload.php';

use Carbon\Carbon;

$dateString = "Tomorrow";
$date = Carbon::parse($dateString);

echo $date->toDateTimeString();
// 出力は変わります。例:"2023-04-26 00:00:00"

Carbonのparseメソッドは多くの日付および時間の形式を賢く扱えるため、柔軟な日付パース機能が必要なアプリケーションにとって貴重なツールとなります。