如何在 PHP 中新增天數到日期
Ralfh Bryan Perez
2023年1月30日
2020年3月28日
在 PHP 中操作 date
字串可以通過多種方式完成,可以新增或減去小時、天數、月份、年份等。PHP 提供了不同的函式,例如 DateTime
,date_add
和 strtotime()
和 date()
。
在 PHP 中通過 DateTime()
中 add
方法新增天數
使用 PHP 5.3 和更高版本,DateTime
物件及其 add
方法是新增天數的一種方法。與 strtotime
和 date
相比,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()
增加了日期值。