如何在 PHP 中新增天數到日期

Ralfh Bryan Perez 2023年1月30日
  1. 在 PHP 中通過 DateTime()add 方法新增天數
  2. 在 PHP 中 date_add() 新增日期
如何在 PHP 中新增天數到日期

在 PHP 中操作 date 字串可以通過多種方式完成,可以新增或減去小時、天數、月份、年份等。PHP 提供了不同的函式,例如 DateTimedate_addstrtotime()date()

在 PHP 中通過 DateTime()add 方法新增天數

使用 PHP 5.3 和更高版本,DateTime 物件及其 add 方法是新增天數的一種方法。與 strtotimedate 相比,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 物件。這接受有效的間隔規範。正確的格式以字母 P 開頭,意思是 period,後跟一個整數值,然後是 D。如果間隔是時間的話,則最後的部分需要為 T

在 PHP 中結合使用 strtotime()date() 新增日期

strtotime() 是一個 PHP 函式,用於將英語文字日期描述轉換為 UNIX 時間戳。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