関数の概要
date_create 関数は、指定した日付文字列を元に DateTime オブジェクトを生成するPHPの組み込み関数です。
この関数を使うことで、文字列形式の日付を扱いやすいオブジェクト形式に変換し、日付の計算やフォーマット変更が簡単に行えます。
パラメータの説明
- datetime(任意):文字列形式の日付を指定します。省略した場合、現在の日付と時刻が使われます。(デフォルトは “now”)
- timezone(任意):
DateTimeZoneオブジェクトを渡すことで、生成されるDateTimeオブジェクトのタイムゾーンを指定できます。
戻り値
DateTime オブジェクトを返します。
日付文字列の解析に失敗した場合は false を返します。
使用例
基本的な使い方
$date = date_create('2024-06-01 12:00:00');
echo $date->format('Y-m-d H:i:s');
// 出力例: 2024-06-01 12:00:00
この例では、文字列で指定した日付から DateTime オブジェクトを作成し、フォーマットを指定して表示しています。
現在日時の取得
$now = date_create();
echo $now->format('Y-m-d H:i:s');
// 出力例: 2024-06-15 14:30:00 (実行した現在日時が表示される)
パラメータを省略すると、現在の日時を持つ DateTime オブジェクトが作成されます。
タイムゾーンを指定して作成する
$timezone = new DateTimeZone('Asia/Tokyo');
$date = date_create('2024-06-01 08:00:00', $timezone);
echo $date->format('Y-m-d H:i:s T');
// 出力例: 2024-06-01 08:00:00 JST
DateTimeZone オブジェクトを渡すことで、任意のタイムゾーン設定が可能です。
関連する関数
DateTime::format()–DateTimeオブジェクトの日時を指定したフォーマットで文字列に変換するdate_create_from_format()– 指定したフォーマットの文字列からDateTimeオブジェクトを作成するdate_modify()– 既存のDateTimeオブジェクトを基に日時を変更する
まとめ
date_create はPHPで日付操作を行う際に非常に便利な関数で、文字列から簡単に DateTime オブジェクトを生成できます。
引数に指定する日付文字列やタイムゾーンを調整することで、実務の様々なケースに対応でき、日時の計算や表示を効率よく行いたい場合におすすめです。
