date_create

関数の概要

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 オブジェクトを生成できます。
引数に指定する日付文字列やタイムゾーンを調整することで、実務の様々なケースに対応でき、日時の計算や表示を効率よく行いたい場合におすすめです。