現在の位置: ホーム> 最新記事一覧> date_subとdate_add関数の違いは何ですか?これら2つの機能を組み合わせて使用​​する方法は?

date_subとdate_add関数の違いは何ですか?これら2つの機能を組み合わせて使用​​する方法は?

gitbox 2025-09-30

1。date_add ()関数

Date_Add()関数は、 DateTimeオブジェクトに時間間隔を追加するために使用されます。 2つのパラメーターを受け入れます。つまり、 DateTimeオブジェクトと時間間隔を表すDateIntervalオブジェクトです。時間間隔は、年、月、日、時間、分などのユニットの組み合わせにすることができます。

文法:

 <span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(DateTime </span><span><span class="hljs-variable">$datetime</span></span><span>, DateInterval </span><span><span class="hljs-variable">$interval</span></span><span>): DateTime
</span></span>

パラメーター:

  • $ DateTime :追加操作を実行するためのDateTimeオブジェクト。

  • $間隔:追加する時間間隔を示すDateIntervalオブジェクト。

例:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-01-01'</span></span><span>);
</span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P1D'</span></span><span>);  </span><span><span class="hljs-comment">// に追加1空</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$datetime</span></span><span>, </span><span><span class="hljs-variable">$interval</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetime</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>);  </span><span><span class="hljs-comment">// 出力: 2025-01-02</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

上記のコードでは、 DateTimeオブジェクトを作成し、 「2025-01-01」に初期化し、「1日を追加」を意味する日付間インターバルオブジェクトを作成し、最後に日付間隔を日付間隔をdate_add()関数に追加します。

2。DATE_SUB ()関数

date_add()とは対照的に、 date_sub()関数は、 dateTimeオブジェクトから時間間隔を差し引くために使用されます。その機能は基本的にdate_add()と同じですが、その機能は時間を増やすのではなく時間を短縮することです。

文法:

 <span><span><span class="hljs-title function_ invoke__">date_sub</span></span><span>(DateTime </span><span><span class="hljs-variable">$datetime</span></span><span>, DateInterval </span><span><span class="hljs-variable">$interval</span></span><span>): DateTime
</span></span>

パラメーター:

  • $ DateTime :減算操作を実行するためのDateTimeオブジェクト。

  • $間隔:差し引く必要がある時間間隔を示すDateIntervalオブジェクト。

例:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-01-01'</span></span><span>);
</span><span><span class="hljs-variable">$interval</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P1D'</span></span><span>);  </span><span><span class="hljs-comment">// マイナス1空</span></span><span>
</span><span><span class="hljs-title function_ invoke__">date_sub</span></span><span>(</span><span><span class="hljs-variable">$datetime</span></span><span>, </span><span><span class="hljs-variable">$interval</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetime</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>);  </span><span><span class="hljs-comment">// 出力: 2024-12-31</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

この例では、 DateTimeオブジェクトを作成し、 「2025-01-01」に初期化し、「1日ごとに減算」を意味する日付間間隔を作成し、日付間隔を日付間隔をDate_Sub()関数から引き下げます。

3. date_add()date_sub()の違い

  • 関数の違いdate_add()は、日付間隔を追加するために使用され、日付からの時間間隔を差し引くためにdate_sub()が使用されます。

  • パラメーター順序:これら2つの関数のパラメーター順序と使用法は基本的に同じですが、その効果はまったく逆です。 date_add()追加操作を実行し、 date_sub()は減算操作を実行します。

4. date_add()date_sub()を組み合わせて使用​​する方法は?

複雑な日付操作を処理する場合、日付で複数の異なる時間操作を実行するために、 Date_add()date_sub()を使用する必要がある場合があります。たとえば、日付は最初に2か月に追加され、その後1週間に差し引かれます。これら2つの機能を組み合わせて使用​​して、この要件を達成できます。

例:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$datetime</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'2025-01-01'</span></span><span>);

</span><span><span class="hljs-comment">// 最初のステップ,に追加2数ヶ月</span></span><span>
</span><span><span class="hljs-variable">$interval_add</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P2M'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">date_add</span></span><span>(</span><span><span class="hljs-variable">$datetime</span></span><span>, </span><span><span class="hljs-variable">$interval_add</span></span><span>);

</span><span><span class="hljs-comment">// ステップ2,マイナス1週</span></span><span>
</span><span><span class="hljs-variable">$interval_sub</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateInterval</span></span><span>(</span><span><span class="hljs-string">'P1W'</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">date_sub</span></span><span>(</span><span><span class="hljs-variable">$datetime</span></span><span>, </span><span><span class="hljs-variable">$interval_sub</span></span><span>);

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$datetime</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d'</span></span><span>);  </span><span><span class="hljs-comment">// 出力: 2025-03-04</span></span><span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

この例では、最初にdate_add()を使用して2か月間日付を追加し、次にdate_sub()を使用して結果から1週間を減算します。最終結果は「2025-03-04」です。

5。date_add()およびdate_sub()を使用した一般的なシナリオ

  • 将来または過去の日付を計算する:将来の日付または過去の日付を計算する必要がある場合は、 date_add()およびdate_sub()を使用して操作を追加または減算することができます。

  • 処理日と時刻差:これらの関数は、日付と現在の日付の差を計算する場合に役立ちます。最初にdate_add()またはdate_sub()を使用して日付を調整し、次に比較することにより、複雑な日付操作の問題を効果的に解決できます。

  • タイミングタスクとスケジューリング:一部の自動タスクでは、特定の時間間隔に従ってタスクの実行時間を調整する必要がある場合があります。 date_add()およびdate_sub()は、タスクごとに異なる時点を柔軟に設定できます。