PHP 日期與時間

2021-09-04 02:32:54 字數 2687 閱讀 6034

1. 獲取時間和日期

date()函式用來獲取並格式化日期和時間,它帶有兩個引數,第乙個是格式字串,第二個可選引數是unix時間戳。如果沒有指定時間戳,在預設的情況下,date()函式將返回當前的日期和時間,例如:

echo date('js f y');
支援的格式**

**描述a

上午或下午,小寫字元表示,"am"或"pm"。

a上午或下午,大寫字元表示,"am"或"pm"。

bswatch internet時間。

ciso 8601日期,日期用yyyy-mm-dd表示,時間用hh:mm:ss表示。

d月份中的日期,有前導0,如"05"。

d星期,縮略字元表示,如"mon"。

e時區識別器。

f年中的月份,全寫,如"january"。

g日期中的時間,12小時制,無前導0,從"1"到"12"。

g日期中的時間,24小時制,無前導0,從"0"到"23"。

h日期中的時間,12小時制,有前導0,從"01"到"12"。

h日期中的時間,24小時制,有前導0,從"00"到"23"。

i小時中的分鐘,有前導0,從"00"到"59"。

i夏令時制,以布林值表示,若為夏令值,返回"1",否則返回"0"。

j月份中的日期,無前導0,如"5"。

l星期,全寫,如"sunday"。

l閏年,以布林值表示,如果日期所在年是閏年,返回"1",否則返回"0"。

m年中的月份,有前導0,從"01"到"12"。

m年中的月份,縮略字元表示,如"jan"。

n年中的月份,無前導0,從"1"到"12"。

oiso 8601的年份數。

o當前時區與格林威治時間之間小時時差。

rrfc822格式的日期,如"wed, 1 jul 2010 18:10:10 + 1600"。

s分鐘中的秒數,有前導0,從"00"到"59"。

s日期字尾,以兩個字元表示,如"st"、"nd"、"rd"。

t月份的天數,從"28"到"31"。

t伺服器的時間區域設定,如"est"。

uunix時間戳。

w星期,數字表示,從"0"(星期日)到"6"(星期六)。

w一年的星期數。

y年份,兩位數,如"12"。

y年份,四位數,如"2012"。

z日期,數字表示,從"0"到"365"。

z與當前時區的時區差,單位為秒,從"-43200"到"43200"。

2. unix時間戳

大多數unix系統儲存當前日期和時間的方法是:儲存格林威治時間從2023年1月1日零點起到當前時刻的秒數,以32位整列表示,其中2023年1月1日零點也叫unix紀元。

雖然這是unix慣例,但是即使在windows伺服器中執行php,這個格式仍然被date()函式和許多的php其他函式使用。不同的是,對於windows,時間戳必須是正數。

將日期和時間轉變成unix時間戳,可以使用mktime()函式,原型如下:

int mktime([int hour[, int minute[, int second [, int month[, int year[, int is_dst]]]]]])
引數is_dst表示該日期所示的時間是否是夏令時,如果是,可以將其設定為1,如果不是,設定為0,如果不知道,則設定為-1(預設值)。如果對應引數為空,將預設為當前時間。因此如果獲取當前的unix時間戳,通過如下方式:

$time = mktime();

3. 時間函式

getdate()函式能夠確定當前時間,原型如下:

array getdate([int timestamp])
它以時間戳為可選引數,返回乙個相關陣列,表示日期和時間的各個部分。

相關陣列中的關鍵字-值對

關鍵字值seconds

秒鐘,數字

minutes

分鐘,數字

hours

小時,數字

mday

月份中的日期,數字

wday

星期,數字

mon月份,數字

year

年份,數字

yday

年份中的日期,數字

weekday

星期,全寫

month

月份,全寫

0時間戳,數字

可以呼叫checkdate()函式來檢驗日期是否有效,原型如下:

int checkdate(int month, int day, int year)
使用strftime()函式,可以根據系統的locale來格式化乙個時間戳,原型如下:

string strftime(string format[, int timestamp])
如果希望以更短的時間段來計量時間,必須使用microtime()函式,它將返回浮點數的時間戳,它與mktime()函式、time()函式或date()函式的返回值相同,但是還有小數部分,例如:

echo number_format(microtime(true), 10, '.', '');

PHP 日期與時間

一 設定時區 date default timezone set asia shanghai 設定時區 二 獲取當前unix時間戳 time 三 獲取指定時間的unix時間戳 mktime date default timezone set asia shanghai 設定時區 nowtime ti...

PHP日期與時間

獲取日期及時間 date string format int timestamp 說明 大寫y表示年四位數字,而小寫y表示年的兩位數字 小寫m表示月份的數字 帶前導 而小寫n則表示不帶前導的月份數字。大寫m表示月份的3個縮寫字元,而小寫m則表示月份的數字 帶前導0 沒有大寫的j,只有小寫j表示月份的...

PHP日期與時間

時間戳是自 1970 年 1 月 1 日 00 00 00 gmt 以來的秒數。它也被稱為 unix 時間戳 unix timestamp unix 時間戳 unix timestamp 或稱unix 時間 unix time posix 時間 posix time 是一種時間表示方式,定義為從格林...