【date/strtotime】PHPの日付関数の使い方【現役エンジニア解説】

PROGRAM

今回は、PHPの日付関数の使い方について、date関数とstrtotime関数に分け、簡単に解説していきます。

PHPでdate関数を使って日付を取得する方法

以下のサンプルコードは、PHPでdate関数を使って現在の日付を取得するコードになります。

echo date("Y/m/d H:i:s"); // "2020/07/09 12:00:00"の形式で出力

上記のサンプルコードでは、年月日時分秒いずれも先頭にゼロを付けたうえで現在の日付を出力します。

echo date("Y/n/j"); // "2020/7/9"の形式で出力

一方で、上記のサンプルコードでは、月日の先頭にゼロを付けずに現在の日付を出力することができます。

PHPでstrtotime関数を使って日付を計算する方法

PHPのdate関数だけでは、現在の日付を表示することしかできません。

echo date("Y/m/d",strtotime("+10 day")); // 現在の日付から10日後が出力

上記のコードのようにstrtotime関数を使うことで、現在の日付からn日後やn日前を出力する等、計算をすることができます。

$date = "2020-07-31";
echo date("Y/m/d",$date.strtotime("+10 day")); // 特定の日付から10日後を出力

一方で、現在の日付からではなく、特定の日付からn日後やn日前といった計算を行いたい場合には、上記のコードのように、date関数の第三引数まで使うことになります。

PHPでdate関数を使って曜日を取得して表示する方法

PHPのdate関数では曜日の名前を直接取得することはできず、番号しか取得できません。

$week_no = date("w"); // 現在の曜日の番号を取得
$week_name = array("日", "月", "火", "水", "木", "金", "土");
echo $week_name[$week_no]; // 現在の曜日の名前を表示

したがって、曜日の名前を表示したい場合には、上記のように名前の配列を作って、date関数で取得した番号を添字として指定することになります。

$week_no = date("w",strtotime("+10 day")); // 現在の日付から10日後の曜日の番号を取得
$week_name = array("日", "月", "火", "水", "木", "金", "土");
echo $week_name[$week_no]; // 現在の日付から10日後の曜日の名前を表示

date関数のため、曜日の場合であっても、上記のように、date関数の第二引数や第三引数を使って、現在の日付や特定の日付から計算した後の日付の曜日を取得することも可能です。