PHP で日付に日を追加する方法

Ralfh Bryan Perez 2023年1月30日
  1. PHP で日を追加するための DateTime()add メソッド
  2. PHP で日付を追加する date_add()
PHP で日付に日を追加する方法

PHP の date 文字列の操作はさまざまな方法で行うことができ、時間、月、年などを追加または差し引くことができます。PHP は DateTimedate_add および strtotime()date() とそれらのような異なる機能を提供します。

PHP で日を追加するための DateTime()add メソッド

PHP バージョン 5.3 以降を使用すると、DateTime オブジェクトとその add メソッドもソリューションになります。DateTime は、strtotimedate よりも多くの日付形式をサポートしています。オブジェクトの使用は、任意の関数よりも簡単です。たとえば、2つの日付を比較する場合、それは DateTime で直接行われますが、strtotime では最初に日付をタイムスタンプに変換する必要があります。

例:

<?php
$oldDate = "2020-02-27";
$newDate = new DateTime($oldDate);
$newDate->add(new DateInterval('P1D')); // P1D means a period of 1 day
$fomattedDate = $date->format('Y-m-d');
?>

次のコードが出力されます:

echo $fomattedDate; //output: 2020-02-28

DateTime() を使用する上で難しい部分は、DateInterval オブジェクトです。これは有効な間隔指定を受け入れます。適切な形式は、period を意味する文字 P で始まり、整数値が続き、その日の D が続きます。期間が時間の場合、最後の部分は T である必要があります。

PHP で日付を追加するための strtotime()date() の組み合わせ

strtotime() は、英語のテキスト形式の日付の説明を UNIX タイムスタンプに変換するために使用される PHP 関数です。strtotime 関数は日時を表す文字列値を受け入れます。

例:

<?php
$oldDate   = "2020-02-27";
$date1 = date("Y-m-d", strtotime($oldDate.'+ 1 days'));
$date2 = date("Y-m-d", strtotime($oldDate.'+ 2 days'));
?>

次のコードが出力されます:

echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29

上記の例は、適切な形式の日付文字列を受け入れ、strtotime+1 days を使用して新しい日付を返します。date() 関数は適切なフォーマットを与えました。

**注:**不明瞭にならないように、ISO 8601 (YYYY-MM-DD) 形式を使用することをお勧めします。

PHP で日付を追加する date_add()

このアプローチは、日、月、年、時間、分、秒を追加する他の方法の中で最も簡単です。

例:

$oldDate = date_create("2020-02-27"); 
date_add($oldDate, date_interval_create_from_date_string("1 day"));

アプリケーション:

echo date_format($date,"Y-m-d"); //output: 2020-02-28

上記の例では、日付を日付文字列に追加し、date_create() は DateTime オブジェクトを作成します。date_interval_create_from_date_string() は文字列の一部から DateInterval を設定します。そして最後に、date_add() は日付値をインクリメントします。

関連記事 - PHP Date