在 PHP 中獲取昨天的日期
-
PHP 中的
date()
-
PHP 中的
DateInterval
-
在 PHP 中使用
strtotime()
獲取昨天的日期 -
在 PHP 中使用
mktime()
獲取昨天的日期 -
在 PHP 中使用
time()
獲取昨天的日期 -
在 PHP 中使用
DateInterval
獲取昨天的日期
本文將介紹如何在 PHP 中獲取昨天的日期。
在學習解決方案之前,我們先來了解一下 date()的概念。
PHP 中的 date()
它是一個內建的 PHP 函式,用於返回格式化的日期字串。
date()
的語法
date(format, timestamp)
引數
format
:這是一個強制引數,用於指定輸出日期字串格式。其中一些選項是:
d
- 01 到 31 範圍內的月份中的第幾天D
- 一天的文字表示(三個字母)m
- 01 到 12 範圍內月份的數字表示M
- 月份的文字表示(三個字母)Y
- 年份的四位數表示y
- 年份的兩位數表示a
- 小寫 am 或 pmA
- 大寫 AM 或 PM
timestamp
:它是一個可選引數,以整數格式指定 Unix 時間戳。如果未提供,則將採用預設值作為當前本地時間。
PHP 中的 DateInterval
它是一個表示日期間隔的 PHP 類。它還提供了靜態方法,它接受輸入字串並從輸入字串設定一個 DateInterval。
現在我們已經理解了 date()
、strtotime()
和 mktime()
的基本概念。我們將使用所有這些函式來獲取昨天的日期。
在 PHP 中使用 strtotime()
獲取昨天的日期
strtotime()
是一個內建的 PHP 函式,可以將英文文字 DateTime 解析為 1970 年 1 月 1 日格林威治標準時間 00:00:00 的 Unix 時間戳。
strtotime()
的語法
strtotime(time, now);
引數
time
:這是一個強制引數,它指定一個日期/時間字串。
now
:這是一個可選引數,指定用作計算相對日期基礎的時間戳。
我們可以將 yesterday
或 -1 days
傳遞給 strtotime
函式以獲取昨天的時間戳。如上所述,時間戳可以通過 date()
函式轉換為字串格式的日期。
示例程式碼:
<?php
// Get yesterdays date
echo date('d.m.Y',strtotime("-1 days")). "\n";
echo date('d M Y',strtotime("yesterday"));
?>
輸出:
24.10.2021
24 Oct 2021
在 PHP 中使用 mktime()
獲取昨天的日期
它是一個內建的 PHP 函式,用於返回日期的 Unix 時間戳。除了傳遞的參數列示日期(不是 GMT 日期)之外,此函式幾乎與 gmmktime()
相同。
語法
mktime(hour, minute, second, month, day, year)
引數
hour
:這是一個可選引數,用於指定小時。minute
:可選引數,指定分鐘。second
:可選引數,指定秒。month
:可選引數,指定月份。day
:可選引數,指定日期。year
:可選引數,指定年份。
示例程式碼:
<?php
$m = date("m"); // Month value
$de = date("d"); // Today's date
$y = date("Y"); // Year value
echo "Yesterday's date was: " . date('d-m-Y', mktime(0,0,0,$m,($de-1),$y));
?>
輸出:
Yesterday's date was: 24-10-2021
year
和 month
的值在今天和昨天之間是相同的。昨天的天
值比今天的值少 1。
在 PHP 中使用 time()
獲取昨天的日期
time()
函式返回當前時間戳。如果我們減去它的值,那麼我們得到昨天同一時間的時間戳。
示例程式碼:
<?php
echo date('d M Y', time() - 60 * 60 * 24);
?>
輸出:
24 Oct 2021
在 PHP 中使用 DateInterval
獲取昨天的日期
它是一個表示日期間隔的 PHP 類。它還提供了靜態方法,它接受輸入字串並從輸入字串設定一個 DateInterval。
DateInterval()
的語法
new DateInterval($period);
引數
$period
:它是一個強制引數,以字串的形式指定時間。例如,P1D
指定 1 天。PT1H 指定 1 小時。
P$numberD
- 一天形式的時間。 $number 的範圍是 1-31。P$numberM
- 月份形式的時間。 $number 的範圍是 1-12。P$numberY
- 年份形式的時間。 $number 的範圍是 1-100。PT$numberH
- 以小時為單位的時間。 $number 的範圍是 1-24。PT$numberM
- 以分鐘為單位的時間。 $number 的範圍是 0-60。PT$numberS
- 秒形式的時間。 $number 的範圍是 0-60。
DateInterval::createFromDateString()
的語法
public static DateInterval::createFromDateString(string $datetime);
引數
$datetime
:它是一個強制引數,以字串格式指定日期/時間。
我們可以將 yesterday
傳遞給 createFromDateString()
,將 P1D
傳遞給 DateInterval
函式以獲取昨天的時間戳。我們可以在當前時間戳中加上或減去這個時間戳,結果時間戳可以通過 date()
函式轉換為字串格式的日期。
示例程式碼:
<?php
$date = new DateTime();
$date->add(DateInterval::createFromDateString('yesterday'));
echo $date->format('d M Y') . "\n";
$date = new DateTime();
$date->sub(new DateInterval('P1D'));
echo $date->format('d M Y') . "\n";
?>
輸出:
24 Oct 2021
24 Oct 2021
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn