checkdate()
作用
函式用於驗證格利高裡日期。
用法
checkdate(month,day,year);
month 必需。一個從 1 到 12 的數字,規定月。
day 必需。一個從 1 到 31 的數字,規定日。
year 必需。一個從 1 到 32767 的數字,規定年。
測試案例
var_dump(checkdate(12,31,-400));
echo "<br>";
var_dump(checkdate(2,29,2003));
echo "<br>";
var_dump(checkdate(2,29,2004));
結果
bool(false)
bool(false)
bool(true)
date_add()
作用
函式新增日、月、年、時、分和秒到一個日期。
用法
date_add(object,interval);
object 必需。規定 date_create() 返回的 DateTime 物件。
interval 必需。規定 DateInterval 物件。
測試案例
$date=date_create("2013-03-15");
date_add($date,date_interval_create_from_date_string("40 days"));
echo date_format($date,"Y-m-d");
結果
2013-04-24
date_create_from_format()
作用
函式返回一個根據指定格式進行格式化的新的 DateTime 物件。
用法
date_create_from_format(format,time,timezone);
引數 描述
format 必需。規定要使用的格式。format 引數字串可以使用下列的字元:
d - 一個月中的第幾天,帶前導零
j - 一個月中的第幾天,不帶前導零
D - 一週中的某天(Mon - Sun)
I - 一週中的某天(Monday - Sunday)
S - 一個月中的第幾天的英語字尾(st, nd, rd, th)
F - 月份名稱(January - December)
M - 月份名稱(Jan - Dec)
m - 月份(01 - 12)
n - 月份(1 - 12)
Y - 年份(例如 2013)
y - 年份(例如 13)
a 和 A - am 或 pm
g - 12 小時制,不帶前導零
h - 12 小時制,帶前導零
G - 24 小時制,不帶前導零
H - 24 小時制,帶前導零
i - 分,帶前導零
s - 秒,帶前導零
u - 微秒(多達六個數字)
e、O、P 和 T - 時區識別符號
U - 自 Unix 紀元以來經過的秒數
(空格)
# - 下列分隔符之一:;、:、/、.、,、-、(、)
? - 一個隨機位元組
* - 隨機位元組直到下一個分隔/數字
! - 重置所有欄位到 Unix 紀元
| - 如果所有欄位都還沒被解析,則重置所有欄位到 Unix 紀元
+ - 如果存在,字串中的尾隨資料將導致警告,不是錯誤
time 必需。規定一個日期/時間字串。NULL 表示當前的日期/時間。
timezone 可選。規定 time 的時區。預設為當前時區。
測試案例
$date=date_create_from_format("j-M-Y","15-Mar-2013");
echo date_format($date,"Y/m/d");
結果
2013/03/15
date_create()
作用
函式返回一個新的 DateTime 物件。
用法
date_create(time,timezone);
time 可選。規定一個日期/時間字串。NULL 表示當前的日期/時間。
timezone 可選。規定 time 的時區。預設是當前時區。
測試案例
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d");
結果
2013/03/15
date_date_set()
作用
函式設定一個新的日期。
用法
date_date_set(object,year,month,day);
object 必需。規定一個由 date_create() 返回的 DateTime 物件。
year 必需。規定日期中的年。
month 必需。規定日期中的月。
day 必需。規定日期中的日。
測試案例
$date=date_create();
date_date_set($date,2020,10,30);
echo date_format($date,"Y/m/d");
結果
2020/10/30
date_default_timezone_get()
作用
函式返回指令碼中所有日期/時間函式使用的預設時區。
用法
date_default_timezone_get();
測試案例
echo date_default_timezone_get();
結果
Asia/Chongqing
date_default_timezone_set()
作用
函式設定指令碼中所有日期/時間函式使用的預設時區
用法
date_default_timezone_set(timezone);
測試案例
date_default_timezone_set("Asia/Shanghai");
echo date_default_timezone_get();
結果
Asia/Shanghai
date_diff()
作用
函式返回兩個 DateTime 物件間的差值
用法
date_diff(datetime1,datetime2,absolute);
測試案例
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
結果
+272 days
date_format()
作用
函式返回一個根據指定格式進行格式化的日期。
用法
date_format(object,format);
測試案例
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
結果
2013/03/15 00:00:00
date_get_last_errors()
作用
函式返回解析日期字串時找到的警告/錯誤。
用法
date_get_last_errors();
測試案例
date_create("gyuiyiuyui%&&/");
print_r(date_get_last_errors());
結果
Array (
[warning_count] => 1
[warnings] => Array (
[6] => Double timezone specification
)
[error_count] => 5
[errors] => Array (
[0] => The timezone could not be found in the database
[10] => Unexpected character
[11] => Unexpected character
[12] => Unexpected character
[13] => Unexpected character
)
)
date_interval_format()
作用
函式是 DateInterval::format() 的別名 函式用於格式化時間間隔。
用法
DateInterval::format(format);
測試案例
$date1=date_create("2013-01-01");
$date2=date_create("2013-02-10");
$diff=date_diff($date1,$date2);
// %a 輸出兩個日期間隔的總天數
echo $diff->format("日期間隔的總天數為: %a 天。");
結果
日期間隔的總天數為: 40 天。
date_isodate_set()
作用
date_isodate_set() 函式根據 ISO 8601 標準設定日期,使用周和天的偏移量(而不是使用一個規定的日期)。
用法
date_isodate_set(object,year,week,day);
day 可選。規定離一週中第一天的偏移量。預設為 1。
測試案例
$date=date_create();
date_isodate_set($date,2013,5);
echo date_format($date,"Y-m-d") . "<br>";
date_isodate_set($date,2013,5,2);
echo date_format($date,"Y-m-d");
結果
2013-01-28
2013-01-29
date_modify()
作用
函式修改時間戳。
用法
date_modify(object,modify);
測試案例
$date=date_create("2013-05-01");
date_modify($date,"+15 days");
echo date_format($date,"Y-m-d");
結果
2013-05-16
date_offset_get()
作用
函式返回時區偏移。
用法
date_offset_get(object);
測試案例
$winter=date_create("2013-12-31",timezone_open("Europe/Oslo"));
$summer=date_create("2013-06-30",timezone_open("Europe/Oslo"));
echo date_offset_get($winter) . " seconds.<br>";
echo date_offset_get($summer) . " seconds.";
結果
3600 seconds.
7200 seconds.
date_parse_from_format()
作用
函式根據指定的格式返回一個包含指定日期資訊的關聯陣列。
用法
date_parse_from_format(format,date);
測試案例
print_r(date_parse_from_format("mmddyyyy","05122013"));
echo "<br><br>";
print_r(date_parse_from_format("j.n.Y H:iP","12.5.2013 14:35+02:00"));
結果
Array (
[year] =>
[month] => 12
[day] => 13
[hour] =>
[minute] =>
[second] =>
[fraction] =>
[warning_count] => 0
[warnings] => Array ( )
[error_count] => 1
[errors] => Array ( [8] => Data missing ) [is_localtime] =>
)
Array (
[year] => 2013
[month] => 5
[day] => 12
[hour] => 14
[minute] => 35
[second] => 0
[fraction] =>
[warning_count] => 0
[warnings] => Array ( )
[error_count] => 0
[errors] => Array ( )
[is_localtime] => 1
[zone_type] => 1
[zone] => -120
[is_dst] =>
)
date_parse()
作用
函式返回一個包含指定日的詳細資訊的關聯陣列。
用法
date_parse(date);
測試案例
print_r(date_parse("2013-05-01 12:30:45.5"));
結果
Array (
[year] => 2013
[month] => 5
[day] => 1
[hour] => 12
[minute] => 30
[second] => 45
[fraction] => 0.5
[warning_count] => 0
[warnings] => Array ( )
[error_count] => 0
[errors] => Array ( )
[is_localtime] =>
)
date_sub()
作用
函式從指定日期減去日、月、年、時、分和秒。
用法
date_sub(object,interval);
object 必需。規定一個由 date_create() 返回的 DateTime 物件。
interval 必需。規定一個 DateInterval 物件。
測試案例
$date=date_create("2013-03-15");
date_sub($date,date_interval_create_from_date_string("40 days"));
echo date_format($date,"Y-m-d");
結果
2013-02-03
date_sun_info()
作用
函式返回一個包含有關指定日期與地點的日出/日落和黃昏開始/黃昏結束的資訊的陣列。
用法
date_sun_info(timestamp,latitude,longitude);
timestamp 必需。規定時間戳。
latitude 必需。規定緯度。
longitude 必需。規定經度。
測試案例
echo "<h3>Date: 1st January, 2013</h3>";
$sun_info=date_sun_info(strtotime("2013-01-01"),31.7667,35.2333);
foreach ($sun_info as $key=>$val)
{
echo "$key: " . date("H:i:s",$val) . "<br>";
}
echo "<h3>Date: 1st June, 2013</h3>";
$sun_info=date_sun_info(strtotime("2013-06-01"),31.7667,35.2333);
foreach ($sun_info as $key=>$val)
{
echo "$key: " . date("H:i:s",$val) . "<br>";
}
結果
Date: 1st January, 2013
sunrise: 23:39:11
sunset: 09:46:51
transit: 04:43:01
civil_twilight_begin: 23:12:29
civil_twilight_end: 10:13:33
nautical_twilight_begin: 22:42:09
nautical_twilight_end: 10:43:53
astronomical_twilight_begin: 22:12:28
astronomical_twilight_end: 11:13:34
Date: 1st June, 2013
sunrise: 22:34:03
sunset: 12:39:59
transit: 05:37:01
civil_twilight_begin: 22:06:21
civil_twilight_end: 13:07:40
nautical_twilight_begin: 21:32:35
nautical_twilight_end: 13:41:27
astronomical_twilight_begin: 20:56:19
astronomical_twilight_end: 14:17:42
date_sunrise()
作用
函式返回指定日期與地點的日出時間。
用法
date_sunrise(timestamp,format,latitude,longitude,zenith,gmtoffset);
timestamp 必需。規定要計算日出時間的日期時間戳。
format 可選。規定如何返回結果:
SUNFUNCS_RET_STRING(以 string 格式返回結果,比如 16:46)(預設)
SUNFUNCS_RET_DOUBLE(以 float 格式返回結果,比如 16.78243132)
SUNFUNCS_RET_TIMESTAMP(以 integer 格式(時間戳)返回結果,比如 1095034606)
latitude 可選。規定地點的緯度。預設是指北緯。因此如果要指定南緯,必須傳遞一個負值。
longitude 可選。規定地點的經度。預設是指東經。因此如果要指定西經,必須傳遞一個負值。
zenith 可選。預設為 date.sunrise_zenith。
gmtoffset 可選。規定 GMT 與本地時間的差值。單位是小時。
測試案例
//Calculate the sunrise time for Lisbon, Portugal
//Latitude: 38.4 North
//Longitude: 9 West
//Zenith ~= 90
//offset: +1 GMT
echo("<h2>Lisbon, Portugal</h2>");
echo("Date: " . date("D M d Y"));
echo("<br>Sunrise time: ");
echo(date_sunrise(time(),SUNFUNCS_RET_STRING,38.4,-9,90,1));
echo("<br>Sunset time: ");
echo(date_sunset(time(),SUNFUNCS_RET_STRING,38.4,-9,90,1));
?>
結果
Lisbon, Portugal
Date: Sat Sep 21 2013
Sunrise time: 07:26
Sunset time: 19:30
date_sunset()
作用
函式返回指定日期與地點的日落時間
用法
date_sunset(timestamp,format,latitude,longitude,zenith,gmtoffset);
測試案例
//Calculate the sunrise time for Lisbon, Portugal
//Latitude: 38.4 North
//Longitude: 9 West
//Zenith ~= 90
//offset: +1 GMT
echo("<h2>Lisbon, Portugal</h2>");
echo("Date: " . date("D M d Y"));
echo("<br>Sunrise time: ");
echo(date_sunrise(time(),SUNFUNCS_RET_STRING,38.4,-9,90,1));
echo("<br>Sunset time: ");
echo(date_sunset(time(),SUNFUNCS_RET_STRING,38.4,-9,90,1));
?>
結果
Lisbon, Portugal
Date: Sat Sep 21 2013
Sunrise time: 07:26
Sunset time: 19:30
date_time_set()
作用
函式用於設定時間
用法
date_time_set(object,hour,minute,second);
測試案例
$date=date_create("2013-05-01");
date_time_set($date,13,24);
echo date_format($date,"Y-m-d H:i:s") . "<br>";
date_time_set($date,12,20,55);
echo date_format($date,"Y-m-d H:i:s");
?>
結果
2013-05-01 13:24:00
2013-05-01 12:20:55
date_time_set()
作用
函式用於設定時間
用法
date_time_set(object,hour,minute,second);
測試案例
$date=date_create("2013-05-01");
date_time_set($date,13,24);
echo date_format($date,"Y-m-d H:i:s") . "<br>";
date_time_set($date,12,20,55);
echo date_format($date,"Y-m-d H:i:s");
結果
2013-05-01 13:24:00
2013-05-01 12:20:55
date_timestamp_get()
作用
函式返回 Unix 時間戳。
用法
date_timestamp_get(object);
測試案例
$date=date_create();
echo date_timestamp_get($date);
結果
1593657268
date_timestamp_get()
作用
函式返回 Unix 時間戳。
用法
date_timestamp_get(object);
測試案例
$date=date_create();
echo date_timestamp_get($date);
結果
1593657268
date_timestamp_set()
作用
函式設定基於 Unix 時間戳的日期和時間
用法
date_timestamp_set(object,unixtimestamp);
測試案例
$date=date_create();
date_timestamp_set($date,1371803321);
echo date_format($date,"U = Y-m-d H:i:s");
結果
1371803321 = 2013-06-21 04:28:41
date_timezone_get()
作用
函式返回給定 DateTime 物件的時區。
用法
date_timezone_get(object);
測試案例
$date=date_create(null,timezone_open("Europe/Paris"));
$tz=date_timezone_get($date);
echo timezone_name_get($tz);
結果
Europe/Paris
date_timezone_set()
作用
函式 DateTime 物件的時區
用法
date_timezone_set(object,timezone);
測試案例
$date=date_create("2013-05-25",timezone_open("Indian/Kerguelen"));
echo date_format($date,"Y-m-d H:i:sP") . "<br>";
date_timezone_set($date,timezone_open("Europe/Paris"));
echo date_format($date,"Y-m-d H:i:sP");
結果
2013-05-25 00:00:00+05:00
2013-05-24 21:00:00+02:00
date_timezone_set()
作用
函式 DateTime 物件的時區
用法
date_timezone_set(object,timezone);
測試案例
$date=date_create("2013-05-25",timezone_open("Indian/Kerguelen"));
echo date_format($date,"Y-m-d H:i:sP") . "<br>";
date_timezone_set($date,timezone_open("Europe/Paris"));
echo date_format($date,"Y-m-d H:i:sP");
結果
2013-05-25 00:00:00+05:00
2013-05-24 21:00:00+02:00
date()
作用
函式格式化本地日期和時間,並返回格式化的日期字串。
用法
date(format,timestamp);
測試案例
// 設定時區
date_default_timezone_set("PRC");
// 列印當前時間 PHP_EOL 換行符,相容不同系統
echo date("Y-m-d H:i:s") . PHP_EOL;
echo date("Y 年 m 月 d 日 H 點 i 分 s 秒") . PHP_EOL;
// 指定時間
$time = strtotime("2018-01-18 08:08:08"); // 將指定日期轉成時間戳
echo date("Y-m-d H:i:s", $time) . PHP_EOL;
結果
2020-07-03 16:53:03
2020 年 07 月 03 日 16 點 53 分 03 秒
2018-01-18 08:08:08
getdate()
作用
函式返回某個時間戳或者當前本地的日期/時間的日期/時間資訊。
用法
getdate(timestamp);
測試案例
print_r(getdate());
結果
Array
(
[seconds] => 4
[minutes] => 54
[hours] => 8
[mday] => 3
[wday] => 5
[mon] => 7
[year] => 2020
[yday] => 184
[weekday] => Friday
[month] => July
[0] => 1593766444
)
gettimeofday()
作用
函式返回當前時間。
用法
gettimeofday(return_float);
return_float 可選。當設定為 TRUE 時,返回一個浮點數,而不是一個陣列。預設是 FALSE。
返回值: 預設返回一個關聯陣列,帶有如下陣列鍵名:
[sec] - Unix 紀元以來的秒
[usec] - 微秒
[minuteswest] - 格林尼治以西的分
[dsttime] - 夏令時修正型別
如果 return_float 引數設定為 true,則返回一個浮點數。
測試案例
// Print the array from gettimeofday()
print_r(gettimeofday());
// Print the float from gettimeofday()
echo gettimeofday(true);
結果
Array
(
[sec] => 1593766542
[usec] => 208317
[minuteswest] => 0
[dsttime] => 0
)
1593766542.2645
gmdate()
作用
函式格式化 GMT/UTC 日期和時間,並返回格式化的日期字串
用法
gmdate(format,timestamp);
測試案例
// Prints the day
echo gmdate("l") . "<br>";
// Prints the day, date, month, year, time, AM or PM
echo gmdate("l jS of F Y h:i:s A");
結果
Friday
Friday 3rd 2020f July 2020 08:59:03 AM
gmmktime()
作用
函式返回 GMT 日期的 UNIX 時間戳。
用法
gmmktime(hour,minute,second,month,day,year,is_dst);
測試案例
// Prints: October 3, 1975 was on a Friday
echo "Oct 3, 1975 was on a ".date("l", gmmktime(0,0,0,10,3,1975));
結果
Oct 3, 1975 was on a Friday
gmstrftime()
作用
函式根據區域設定格式化 GMT/UTC 日期和時間。
用法
gmstrftime(format,timestamp);
測試案例
echo(gmstrftime("%B %d %Y, %X %Z",mktime(20,0,0,12,31,98))."<br>");
setlocale(LC_ALL,"hu_HU.UTF8");
echo(gmstrftime("%Y. %B %d. %A. %X %Z"));
結果
January 01 1999, 01:00:00 Eastern Standard Time
2013. September 21. Saturday. 15:10:22 Eastern Standard Time
idate()
作用
函式格式化本地時間/日期為整數。
用法
idate(format,timestamp);
format B - Swatch Beat/Internet Time
d - 一個月中的第幾天
h - 小時(12 小時制)
H - 小時(24 小時制)
i - 分
I - 如果啟用夏令時則返回 1,否則返回 0
L - 如果閏年則返回 1,否則返回 0
m - 月份的數字
s - 秒
t - 本月的總天數
U - 自 Unix 紀元(January 1 1970 00:00:00 GMT)以來經過的秒數,與 time() 作用相同
w - 星期中的第幾天(星期天是 0)
W - ISO-8601 格式年份中的第幾個星期,每星期從星期一開始
y - 年份(1 或 2 位數字)
Y - 年份(4 位數字)
z - 一年中的第幾天
Z - 以秒為單位的時區偏移量
測試案例
echo idate("B") . "<br>";
echo idate("d") . "<br>";
echo idate("h") . "<br>";
echo idate("H") . "<br>";
echo idate("i") . "<br>";
echo idate("I") . "<br>";
echo idate("L") . "<br>";
echo idate("m") . "<br>";
echo idate("s") . "<br>";
echo idate("t") . "<br>";
echo idate("U") . "<br>";
echo idate("w") . "<br>";
echo idate("W") . "<br>";
echo idate("y") . "<br>";
echo idate("Y") . "<br>";
echo idate("z") . "<br>";
echo idate("Z") . "<br>";
結果
55
4
12
0
19
0
1
7
30
31
1593821970
6
27
20
2020
185
0
localtime()
作用
函式返回本地時間。
用法
localtime(timestamp,is_assoc);
is_assoc 可選。規定返回關聯陣列還是數值陣列。如果為 FALSE,則返回數值陣列。如果為 TRUE,則返回關聯陣列。預設為 FALSE。
關聯陣列的鍵名如下所示:
[tm_sec] - 秒數
[tm_min] - 分鐘數
[tm_hour] - 小時
[tm_mday] - 月份中的第幾天
[tm_mon] - 年份中的第幾個月,從 0 開始表示一月份
[tm_year] - 年份,從 1900 開始
[tm_wday] - 星期中的第幾天 (Sunday=0)
[tm_yday] - 年中的第幾天
[tm_isdst] - 夏令時當前是否生效
測試案例
print_r(localtime());
echo "<br><br>";
print_r(localtime(time(),true));
結果
Array
(
[0] => 37
[1] => 21
[2] => 0
[3] => 4
[4] => 6
[5] => 120
[6] => 6
[7] => 185
[8] => 0
)
Array
(
[tm_sec] => 37
[tm_min] => 21
[tm_hour] => 0
[tm_mday] => 4
[tm_mon] => 6
[tm_year] => 120
[tm_wday] => 6
[tm_yday] => 185
[tm_isdst] => 0
)
microtime()
作用
函式返回當前 Unix 時間戳的微秒數
用法
microtime(get_as_float);
get_as_float 可選。當設定為 TRUE 時,規定函式應該返回一個浮點數,否則返回一個字串。預設為 FALSE。
測試案例
echo(microtime());
結果
0.48485500 1593822517
mktime()
作用
函式返回一個日期的 UNIX 時間戳
用法
mktime(hour,minute,second,month,day,year,is_dst);
測試案例
// Prints: October 3, 1975 was on a Friday
echo "Oct 3, 1975 was on a ".date("l", mktime(0,0,0,10,3,1975));
結果
Oct 3, 1975 was on a Friday
strftime()
作用
函式根據區域設定格式化本地日期和時間
用法
strftime(format,timestamp);
測試案例
echo(strftime("%B %d %Y, %X %Z",mktime(20,0,0,12,31,98))."<br>");
setlocale(LC_ALL,"hu_HU.UTF8");
echo(strftime("%Y. %B %d. %A. %X %Z"));
結果
December 31 1998, 20:00:00 CST
2020. July 05. Sunday. 09:56:29 CST
strptime()
作用
函式解析由 strftime() 生成的時間/日期。
注意:該函式不能在 Windows 平臺下實現!
用法
strptime(date,format);
測試案例
$format="%d/%m/%Y %H:%M:%S";
$strf=strftime($format);
echo("$strf");
print_r(strptime($strf,$format));
結果
05/07/2020 02:00:47
Array
(
[tm_sec] => 47
[tm_min] => 0
[tm_hour] => 2
[tm_mday] => 5
[tm_mon] => 6
[tm_year] => 120
[tm_wday] => 0
[tm_yday] => 186
[unparsed] =>
)
time()
作用
函式返回自 Unix 紀元(January 1 1970 00:00:00 GMT)起的當前時間的秒數。
用法
time();
測試案例
$t=time();
echo($t . "<br>");
echo(date("Y-m-d",$t));
結果
1593914254
2020-07-05
timezone_abbreviations_list()
作用
返回包含夏令時、偏移量和時區名稱的關聯陣列
用法
time();
測試案例
$tzlist=timezone_abbreviations_list();
print_r($tzlist["act"]);
結果
Array
(
[0] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => America/Porto_Acre
)
[1] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => America/Eirunepe
)
[2] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => America/Rio_Branco
)
[3] => Array
(
[dst] =>
[offset] => -18000
[timezone_id] => Brazil/Acre
)
)
參考
本作品採用《CC 協議》,轉載必須註明作者和本文連結