PHPのdate_diff()関数を使用し2つのDateTimeオブジェクト間の差を返してみます。
date_diff()関数は、2つのDateTimeオブジェクト間の差を返すことができます。
■基本的な構文
date_diff(datetime1, datetime2, absolute)
datetime1は、DateTimeオブジェクトを指定します。
datetime2は、datetime1とは別のDateTimeオブジェクトを指定します。
absoluteは、Boolean値を指定します。True(真)の場合は、差が正でなければならない。デフォルトでは、False(偽)となります。この引数,パラメーターはオプションです。
■環境
・Windows10
・XAMPP 8.0.6
・PHP Version 8.0.6
■date_diff()関数を使用し2つのDateTimeオブジェクト間の差を返す
では、PHPのdate_diff()関数を使用し2つのDateTimeオブジェクト間の差を返すスクリプトを書いていきます。
■コード
<html lang="ja">
<head>
<title>date_diff()関数を使用し2つのDateTimeオブジェクト間の差を返す</title>
</head>
<body>
<?php
$test_1 = date_create("2021-09-01");
$test_2 = date_create("2021-09-15");
$diff = date_diff($test_1,$test_2);
echo $diff->format("%R%a 日");
?>
</body>
</html>
2つのDateTimeオブジェクト間の差を取得するために、今回はtest_1という変数を定義します。定義した変数内でdate_create()関数を使用します。関数の括弧内に引数,パラメータとして、日付の文字列を渡します。次に同じようにして、test_2という変数を定義します。この変数内でもdate_create()関数を使用し、括弧内に引数,パラメータとして、日付の文字列を渡します。これで2つのDateTimeオブジェクトが、test_1変数とtest_2変数に格納されました。
格納後、diffという変数を定義します。定義した変数内でdate_diff()関数を使用します。関数の括弧内に引数,パラメータとして、test_1変数とtest_2変数を渡します。これで2つDateTimeオブジェクト間の差が計算され、diff変数に格納されました。
最後に、diff変数内にアロー演算子(オブジェクト演算子)”ー>”を使用しアクセスし、2つDateTimeオブジェクト間の差を、format()関数を使用し、引数,パラメータとして渡したフォーマット(形式)に整えて、echo文で出力します。
■実行
では、このスクリプトを「diff_between_two_dt_objects.php」という名前で保存し、実行させてみます。
実行させてみると、date_diff()関数をしたことで、今回定義した2つの変数(test_1,test_2)に格納した2つDateTimeオブジェクト間の差が、diff変数内に返され格納。格納後、echo文で2つDateTimeオブジェクト間の差(日数)を出力することができました。
コメント