関数の概要
date_interval_create_from_date_string は、PHPで指定した文字列から DateInterval オブジェクトを作成するための関数です。日時の差分や期間を表す文字列を簡単に扱える形式に変換できるため、時間の加減算や計算に便利です。
パラメータの説明
time(string): イギリス英語で書かれた期間(例: “1 day”, “2 months”, “1 year 3 days”)を表す文字列。
日数、月数、年、時間、分、秒などを自由に組み合わせて指定可能です。
戻り値
指定した文字列に基づいて作成された DateInterval オブジェクトを返します。文字列の解析に失敗した場合は FALSE を返すことがあります。
使用例
基本的な使い方
<?php
$interval = date_interval_create_from_date_string('1 day');
var_dump($interval);
?>
この例では「1日」の時間差を示す DateInterval オブジェクトを生成し、中身を表示しています。
複数の期間を組み合わせる
<?php
$interval = date_interval_create_from_date_string('2 years 3 months 10 days');
echo $interval->format('%y 年 %m ヶ月 %d 日');
?>
年・月・日を組み合わせた複雑な期間も、一つの文字列で指定してオブジェクトを作成し、フォーマットして出力できます。
時間や分、秒を指定する例
<?php
$interval = date_interval_create_from_date_string('5 hours 30 minutes 20 seconds');
echo $interval->format('%h 時間 %i 分 %s 秒');
?>
日付だけでなく時間単位も扱えます。細かい時間差分を表現したい時に便利です。
関連する関数
DateInterval::format()— 作成した期間オブジェクトを任意の形式で文字列に変換date_diff()— 2つの日付の差分をDateIntervalとして計算DateTime::add()— 日付にDateIntervalを加算DateTime::sub()— 日付からDateIntervalを減算
まとめ
date_interval_create_from_date_string は、文字列で指定した時間の長さや期間から手軽に DateInterval オブジェクトを作成できる関数です。構文が柔軟で分かりやすいため、日時の加減算処理をシンプルに書きたい場合に役立ちます。時間単位もまとめて指定できるため、実務でも幅広く活用可能です。
