從本篇文章開始,將學習PHP的高級特性內容。本篇文章將記錄在PHP中如何進行日期時間處理和包含文件的學習過程。
一、日期和時間
在PHP中,date()?函數用于格式化日期或時間。
說明
date(string $format, ?int $timestamp = null): string
使用指定整數 timestamp(Unix 時間戳),或者使用當前時間(如果沒有指定時間戳),返回相應的指定格式的格式化字符串。換句話說,timestamp 是可選的。
參數
format | 必需。指定時間戳的格式。 |
timestamp | 可選。timestamp 參數是一個 int 的 Unix 時間戳,如未指定或是 null,參數值默認為當前本地時間。 |
1、獲取日期和時間?
date()?函數的格式參數指定了如何格式化日期或時間。
- d?- 表示月份中的第幾天(01 到 31)
- m?- 表示月份(01 到 12)
- Y?- 表示年份(四位數字)
- l?- 表示星期幾(小寫 'L')
- H?- 24 小時制的小時(00 到 23)
- h?- 12 小時制的小時(01 到 12),前面有零
- i?- 分鐘(00 到 59),前面有零
- s?- 秒(00 到 59),前面有零
- a?- 小寫的上午和下午(am 或 pm)
echo "今天是:" . date("Y-m-d") . "<br>";
echo "現在的時間是:" . date("H:i:s") . "<br>";
echo "今天是:" . date("Y-m-d H:i:s"). "<br>";
2、設置時區
如果從代碼中獲取的時間不正確,可能是因為服務器位于另一個國家或設置為不同的時區。此時,就需要根據特定位置使時間正確,我們需要設置要使用的時區。
date_default_timezone_set 函數用于設置腳本中所有日期/時間函數使用的默認時區。
說明
date_default_timezone_set(string $timezoneId): bool
設置所有日期/時間函數使用的默認時區,如果 timezoneId 無效,此函數返回 false,否則返回 true。
參數
timezoneId:時區標識符。有效的標識符列表請參考官方文檔:有效的標識符列表。
示例
// 設置時區為 "America/New_York"
date_default_timezone_set("America/New_York");
echo "今天是:" . date("Y-m-d H:i:s");
3、使用 mktime() 創建日期
我們現在使用 date() 函數都沒有傳入時間戳,使用的是當前的日期和時間。如果我們想傳入指定時間,應該怎么辦呢?
PHP 的?mktime()?函數返回日期的 Unix 時間戳。Unix 時間戳包含 Unix 紀元(1970 年 1 月 1 日 00:00:00 GMT)和指定時間之間的秒數。
說明
mktime(int $hour,?int $minute = null,?int $second = null,?int $month = null,?int $day = null,?int $year = null
): int|false
根據給出的參數返回 Unix 時間戳,如果時間戳不適合 PHP 整數則返回 false。
任何可選或為 null 的參數都將根據本地日期和時間設置為當前值。
參數
hour | 必需。相對于一天開始的小時數,由 month、day 和 year 確定。負值是指當天零點前的小時。值大于 23 是指接下來幾天的適當小時。 |
minute | 可選。相對于 hour 開始的分鐘數。負值指的是上個小時的分鐘。大于 59 的值將指向接下來幾個小時的適當分鐘。 |
second | 可選。相對于 minute 開始的秒數。負值是指前一分鐘的秒數。大于 59 的值是指接下來幾分鐘的適當秒。 |
month | 可選。相對于去年年底的月份數。值 1 到 12 是指相關年份的正常日歷月份。小于 1 的值(包括負值)按相反的順序指向去年的月份,因此 0 是 12 月,-1 是 11 月,以此類推。值大于 12 是指接下來幾年的適當月份。 |
day | 可選。相對于上個月月底的天數。值 1 到 28、29、30 或 31(取決于月份)是指相關月份的正常天數。小于 1 的值(包括負值)是指上個月的天數,因此 0 是上個月的最后一天,-1 是倒數第二天,以此類推。大于相關月份天數的值是指接下來幾個月的適當某一天。 |
year | 可選。年份數,可以是兩位或四位數字,0-69 對應于 2000-2069,70-100 對應于 1970-2000。在如今系統中普遍把 time_t 作為一個 32 位有符號整數的情況下,year 的合法范圍是 1901 到 2038 之間。 |
注意:參數的順序很奇怪:month、day、year,而不是更合理的 year、month、day 順序。?
示例?
$d=mktime(11, 14, 45, 8, 6, 2022);
echo "創建的時間是:" . date("Y-m-d H:i:s", $d); // 輸出 "2022-08-06 11:14:45"
4、使用 strtotime() 從字符串創建日期
上文我們用 mktime() 完成了日期創建,但是該函數的參數比較多,使用起來比較麻煩。所以本節內容將說明如何直接使用字符串來進行日期創建。
PHP 的?strtotime()?函數用于將人類可讀的日期字符串轉換為 Unix 時間戳(自 1970 年 1 月 1 日 00:00:00 GMT 起的秒數)。
說明
strtotime(string $datetime, ?int $baseTimestamp = null): int|false
本函數接受包含英文日期格式的字符串并嘗試將其解析為 Unix 時間戳,成功則返回時間戳,否則返回 false。
參數
datetime | 必需。日期/時間字符串。 |
baseTimestamp | 可選。時間戳,用作計算相對日期的基礎。 |
示例?
$d=strtotime("tomorrow");
echo "明天是:" . date("Y-m-d", $d) . "<br>";$d=strtotime("next Saturday");
echo "下一個周六是:" . date("Y-m-d", $d) . "<br>";$d=strtotime("2021-01-16");
echo date("Y-m-d", $d) . "<br>";
二、包含文件
- require?將產生致命錯誤(E_ERROR)并停止腳本。
- include?僅會產生警告(E_WARNING),并且腳本會繼續執行。
include "文件路徑";
require "文件路徑";
示例
vars.php
<?php
$color = "green";
$fruit = "apple";test.php
<?php
include "vars.php";
echo "A $color $fruit"; // 輸出 "A green apple"
當文件被應用程序需要時,應使用?require。
當文件不是必需的,且文件未找到時應用程序需要繼續時,請使用?include。