1、checkdate()驗(yàn)證格利高里日期即:日期是否存在。
checkdate(month,day,year);
month必需。一個(gè)從 1 到 12 的數(shù)字,規(guī)定月。
day必需。一個(gè)從 1 到 31 的數(shù)字,規(guī)定日。
year必需。一個(gè)從 1 到 32767 的數(shù)字,規(guī)定年。
返回值:如果日期是有效的則返回 TRUE,否則返回 FALSE。
php 版本:4.0+
<?php
var_dump(checkdate(12,31,-400));
echo "<br>";
var_dump(checkdate(2,29,2003));
echo "<br>";
var_dump(checkdate(2,29,2004));
?>
輸出結(jié)果:
bool(false)
bool(false)
bool(true)
2、date_add()添加日、月、年、時(shí)、分和秒到一個(gè)日期。
date_add(object,interval);
object必需。規(guī)定 date_create() 返回的 DateTime 對(duì)象。
interval必需。規(guī)定 DateInterval 對(duì)象。
返回值:如果成功則返回 DateTime 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.3+
添加 40 天到 2013 年 3 月 15 日:
<?php
$date=date_create("2013-03-15");
date_add($date,date_interval_create_from_date_string("40 days"));
echo date_format($date,"Y-m-d");
?>
結(jié)果:2013-04-24
3、date_create_from_format()返回一個(gè)根據(jù)指定格式進(jìn)行格式化的新的 DateTime 對(duì)象。
date_create_from_format(format,time,timezone);
format必需。規(guī)定要使用的格式。format 參數(shù)字符串可以使用下列的字符:
d - 一個(gè)月中的第幾天,帶前導(dǎo)零
j - 一個(gè)月中的第幾天,不帶前導(dǎo)零
D - 一周中的某天(Mon - Sun)
I - 一周中的某天(Monday - Sunday)
S - 一個(gè)月中的第幾天的英語(yǔ)后綴(st, nd, rd, th)
F - 月份名稱(chēng)(January - December)
M - 月份名稱(chēng)(Jan - Dec)
m - 月份(01 - 12)
n - 月份(1 - 12)
Y - 年份(例如 2013)
y - 年份(例如 13)
a 和 A - am 或 pm
g - 12 小時(shí)制,不帶前導(dǎo)零
h - 12 小時(shí)制,帶前導(dǎo)零
G - 24 小時(shí)制,不帶前導(dǎo)零
H - 24 小時(shí)制,帶前導(dǎo)零
i - 分,帶前導(dǎo)零
s - 秒,帶前導(dǎo)零
u - 微秒(多達(dá)六個(gè)數(shù)字)
e、O、P 和 T - 時(shí)區(qū)標(biāo)識(shí)符
U - 自 Unix 紀(jì)元以來(lái)經(jīng)過(guò)的秒數(shù)
(空格)
# - 下列分隔符之一:;、:、/、.、,、-、(、)
? - 一個(gè)隨機(jī)字節(jié)
* - 隨機(jī)字節(jié)直到下一個(gè)分隔/數(shù)字
! - 重置所有字段到 Unix 紀(jì)元
| - 如果所有字段都還沒(méi)被解析,則重置所有字段到 Unix 紀(jì)元
+ - 如果存在,字符串中的尾隨數(shù)據(jù)將導(dǎo)致警告,不是錯(cuò)誤
time必需。規(guī)定一個(gè)日期/時(shí)間字符串。NULL 表示當(dāng)前的日期/時(shí)間。
timezone可選。規(guī)定 time 的時(shí)區(qū)。默認(rèn)為當(dāng)前時(shí)區(qū)。
返回值:如果成功則返回 DateTime 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.3+
<?php
$date=date_create_from_format("j-M-Y","15-Mar-2013");
?>
4、date_create()返回一個(gè)新的 DateTime 對(duì)象。
date_create(time,timezone);
time可選。規(guī)定一個(gè)日期/時(shí)間字符串。NULL 表示當(dāng)前的日期/時(shí)間。
timezone可選。規(guī)定 time 的時(shí)區(qū)。默認(rèn)是當(dāng)前時(shí)區(qū)。
返回值:如果成功則返回一個(gè)新的 DateTime 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.2+
<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d");
?>
2013/03/15
5、date_date_set()設(shè)置一個(gè)新的日期。
date_date_set(object,year,month,day);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
year必需。規(guī)定日期中的年。
month必需。規(guī)定日期中的月。
day必需。規(guī)定日期中的日。
返回值:如果成功則返回一個(gè)新的 DateTime 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.2+,從 PHP 5.3+ 開(kāi)始,如果成功,返回值則從 NULL 變成 DateTime。
<?php
$date=date_create();
date_date_set($date,2020,10,30);
echo date_format($date,"Y/m/d");
?>
2020/10/30
6、date_default_timezone_get()返回默認(rèn)時(shí)區(qū),被所有的 Date/Time 函數(shù)使用。
date_default_timezone_get();
返回值:以字符串返回時(shí)區(qū)。
PHP 版本:5.1+,從 PHP 5.4+ 開(kāi)始,時(shí)區(qū)不再?gòu)牟僮飨到y(tǒng)獲取信息,TZ 變量不再被使用。
<?php
echo date_default_timezone_get();
?>
Asia/Shanghai
7、date_default_timezone_set()設(shè)置默認(rèn)時(shí)區(qū),被所有的 Date/Time 函數(shù)使用。
date_default_timezone_set(timezone);
timezone必需。規(guī)定要使用的時(shí)區(qū),比如 "UTC" 或 "Europe/Paris"。合法時(shí)區(qū)的列表:
http://www.php.net/manual/en/timezones.php
返回值:如果 timezone 不合法則返回 FALSE,否則返回 TRUE。
PHP 版本:5.1+,從 PHP 5.1.2+ 開(kāi)始,該函數(shù)開(kāi)始驗(yàn)證 timezone 參數(shù)。從 PHP 5.3+ 開(kāi)始,拋出 E_WARNING 而不是 E_STRICT。
<?php
date_default_timezone_set("Asia/Shanghai");
echo date_default_timezone_get();
?>
Asia/Shanghai
8、date_diff()返回兩個(gè)日期間的差值。
date_diff(datetime1,datetime2,absolute);
datetime1必需。規(guī)定一個(gè) DateTime 對(duì)象。
datetime2必需。規(guī)定一個(gè) DateTime 對(duì)象。
absolute可選。規(guī)定一個(gè)布爾值。TRUE 表示間隔/差值必須是正的。默認(rèn)是 FALSE。
返回值:如果成功則返回一個(gè) DateInterval 對(duì)象,表示兩個(gè)日期間的差值。如果失敗則返回 FALSE。
PHP 版本:5.3+
<?php
$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2,TRUE);
?>
+272 days
9、date_format()返回根據(jù)指定格式進(jìn)行格式化的日期。
date_format(object,format);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
format必需。規(guī)定日期格式。
返回值:返回格式化的日期字符串。如果失敗則返回 FALSE。
PHP 版本:5.2+
<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>
2013/03/15 00:00:00
10、date_get_last_errors()返回日期字符串中的警告/錯(cuò)誤。
date_get_last_errors();
返回值:返回一個(gè)包含有關(guān)錯(cuò)誤/警告信息的數(shù)組。
PHP 版本:5.3+
<?php
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
)
)
11、
date_interval_create_from_date_string()從字符串的相關(guān)部分建立一個(gè) DateInterval。
date_interval_create_from_date_string ( string $time )
$time必需。與相關(guān)部分的日期。 具體來(lái)說(shuō),用于strtotime()和DateTime的解析器支持的相對(duì)格式將用于構(gòu)造DateInterval。
返回值:返回一個(gè)新的DateInterval實(shí)例。
PHP 版本:5.0+
<?php
$i = date_interval_create_from_date_string('3600 seconds');
var_dump($i);
?>
object(DateInterval)#1 (16) {
["y"]=> int(0)
["m"]=> int(0)
["d"]=> int(0)
["h"]=> int(0)
["i"]=> int(0)
["s"]=> int(3600)
["f"]=> float(0)
["weekday"]=> int(0)
["weekday_behavior"]=> int(0)
["first_last_day_of"]=> int(0)
["invert"]=> int(0)
["days"]=> bool(false)
["special_type"]=> int(0)
["special_amount"]=> int(0)
["have_weekday_relative"]=> int(0)
["have_special_relative"]=> int(0)
}
12、date_interval_format()格式化時(shí)間間隔。
DateInterval::format(format);
format必需。規(guī)定格式。format 參數(shù)字符串可以使用下列的字符:
% - Literal %
Y - 年,至少 2 個(gè)數(shù)字,帶前導(dǎo)零(例如 03)
y - 年(例如 3)
M - 月,帶前導(dǎo)零(例如 06)
m - 月(例如 6)
D - 日,帶前導(dǎo)零(例如 09)
d - 日(例如 9)
a - 由 date_diff() 得出的兩個(gè)日期間隔的總天數(shù)
H - 小時(shí),帶前導(dǎo)零(例如 08、23)
h - 小時(shí)(例如 8、23)
I - 分,帶前導(dǎo)零(例如 08、23)
i - 分(例如 8、23)
S - 秒,帶前導(dǎo)零(例如 08、23)
s - 秒(例如 8、23)
R - 當(dāng)負(fù)數(shù)時(shí)為符號(hào) "-",當(dāng)正數(shù)時(shí)為符號(hào) "+"
r - 當(dāng)負(fù)數(shù)時(shí)為符號(hào) "-",當(dāng)正數(shù)時(shí)為空
注意:每個(gè)格式字符串必須帶一個(gè) % 符作為前綴!
返回值:返回格式化的時(shí)間間隔。
PHP 版本:5.3+
<?php
$date1=date_create("2013-01-01");
$date2=date_create("2013-02-10");
$diff=date_diff($date1,$date2);
// %a 輸出兩個(gè)日期間隔的總天數(shù)
echo $diff->format("日期間隔的總天數(shù)為: %a 天。");
?>
日期間隔的總天數(shù)為: 40 天。
13、date_isodate_set()設(shè)置 ISO 日期。
date_isodate_set(object,year,week,day);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
year必需。規(guī)定日期中的年。
week必需。規(guī)定日期中的周。
day可選。規(guī)定離一周中第一天的偏移量。默認(rèn)為 1。
返回值:如果成功則返回一個(gè) DateTime 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.2+,PHP 5.3.0:返回值從 NULL 改為 DateTime。
設(shè)置 2013 年第 5 周的 ISO 日期:
<?php
$date=date_create();
date_isodate_set($date,2013,5);
echo date_format($date,"Y-m-d");
?>
2013-01-28
14、date_modify()修改時(shí)間戳。
date_modify(object,modify);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
modify必需。規(guī)定一個(gè)日期/時(shí)間字符串。
返回值:如果成功則返回一個(gè) DateTime 對(duì)象。如果失敗則返回 FALSE。
PHP 版本:5.2+,PHP 5.3.0:返回值從 NULL 改為 DateTime。
修改時(shí)間戳。增加 15 天:
<?php
$date=date_create("2013-05-01");
date_modify($date,"+15 days");
echo date_format($date,"Y-m-d");
?>
2013-05-16
15、date_offset_get()返回時(shí)區(qū)偏移。
date_offset_get(object);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
返回值:如果成功則返回相對(duì)于 UTC 的以秒計(jì)的時(shí)區(qū),如果失敗則返回 FALSE。
PHP 版本:5.2+
返回奧斯陸(在歐洲挪威)冬天和夏天相對(duì)于 UTC 的以秒計(jì)的時(shí)區(qū)偏移量:
<?php
$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.
16、date_parse_from_format()根據(jù)指定的格式返回一個(gè)帶有指定日期的詳細(xì)信息的關(guān)聯(lián)數(shù)組。
date_parse_from_format(format,date);
format必需。規(guī)定格式(格式由 date_create_from_format() 接受)。
date必需。一個(gè)指定日期的字符串。
返回值:如果成功則返回包含指定日期信息的關(guān)聯(lián)數(shù)組。
PHP 版本:5.3+
<?php
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] =>
)
17、date_parse()返回一個(gè)帶有指定日期的詳細(xì)信息的關(guān)聯(lián)數(shù)組。
date_parse(date);
date必需。規(guī)定日期(格式由 strtotime() 接受)。
返回值:如果成功則返回包含被解析日期信息的關(guān)聯(lián)數(shù)組,如果失敗則返回 FALSE。
PHP 版本:5.2+
<?php
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] =>
)
18、date_sub()從指定日期減去日、月、年、時(shí)、分和秒。
date_sub(object,interval);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
interval必需。規(guī)定一個(gè) DateInterval 對(duì)象。
返回值:如果成功則返回 DateTime 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.3+
<?php
$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
19、date_sun_info()返回一個(gè)包含有關(guān)指定日期與地點(diǎn)的日出/日落和黃昏開(kāi)始/黃昏結(jié)束的信息的數(shù)組。
date_sun_info(timestamp,latitude,longitude);
timestamp必需。規(guī)定時(shí)間戳。
latitude必需。規(guī)定緯度。
longitude必需。規(guī)定經(jīng)度。
返回值:如果成功則返回一個(gè)數(shù)組,如果失敗則返回 FALSE。
PHP 版本:5.1.2+
<?php
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
20、date_sunrise()返回指定日期與地點(diǎn)的日出時(shí)間。
date_sunrise(timestamp,format,latitude,longitude,zenith,gmtoffset);
timestamp必需。規(guī)定要計(jì)算日出時(shí)間的日期時(shí)間戳。
format可選。規(guī)定如何返回結(jié)果:
SUNFUNCS_RET_STRING(以 string 格式返回結(jié)果,比如 16:46)(默認(rèn))
SUNFUNCS_RET_DOUBLE(以 float 格式返回結(jié)果,比如 16.78243132)
SUNFUNCS_RET_TIMESTAMP(以 integer 格式(時(shí)間戳)返回結(jié)果,比如 1095034606)
latitude可選。規(guī)定地點(diǎn)的緯度。默認(rèn)是指北緯。因此如果要指定南緯,必須傳遞一個(gè)負(fù)值。
longitude可選。規(guī)定地點(diǎn)的經(jīng)度。默認(rèn)是指東經(jīng)。因此如果要指定西經(jīng),必須傳遞一個(gè)負(fù)值。
zenith可選。默認(rèn)為 date.sunrise_zenith。
gmtoffset可選。規(guī)定 GMT 與本地時(shí)間的差值。單位是小時(shí)。
返回值:如果成功,則以指定的 format 返回日出時(shí)間。如果失敗則返回 FALSE。
PHP 版本:5+,從 PHP 5.1.0 開(kāi)始,該函數(shù)報(bào) E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤。
<?php
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));
?>
Date: Sat Sep 21 2013
Sunrise time: 07:26
Sunset time: 19:30
21、date_sunset()返回指定日期與地點(diǎn)的日落時(shí)間。
date_sunset(timestamp,format,latitude,longitude,zenith,gmtoffset);
timestamp必需。規(guī)定要計(jì)算日落時(shí)間的日期時(shí)間戳。
format可選。規(guī)定如何返回結(jié)果:
SUNFUNCS_RET_STRING(以 string 格式返回結(jié)果,比如 16:46)(默認(rèn))
SUNFUNCS_RET_DOUBLE(以 float 格式返回結(jié)果,比如 16.78243132)
SUNFUNCS_RET_TIMESTAMP(以 integer 格式(時(shí)間戳)返回結(jié)果,比如 1095034606)
latitude可選。規(guī)定地點(diǎn)的緯度。默認(rèn)是指北緯。因此如果要指定南緯,必須傳遞一個(gè)負(fù)值。
longitude可選。規(guī)定地點(diǎn)的經(jīng)度。默認(rèn)是指東經(jīng)。因此如果要指定西經(jīng),必須傳遞一個(gè)負(fù)值。
zenith可選。默認(rèn)為 date.sunset_zenith。
gmtoffset可選。規(guī)定 GMT 與本地時(shí)間的差值。單位是小時(shí)。
返回值:如果成功,則以指定的 format 返回日落時(shí)間。如果失敗則返回 FALSE。
PHP 版本:5+,從 PHP 5.1.0 開(kāi)始,該函數(shù)報(bào) E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤。
<?php
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));
?>
Date: Sat Sep 21 2013
Sunrise time: 07:26
Sunset time: 19:30
22、date_time_set()設(shè)置時(shí)間。
date_time_set(object,hour,minute,second);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
hour必需。規(guī)定時(shí)間中的小時(shí)。
minute必需。規(guī)定時(shí)間中的分。
second可選。規(guī)定時(shí)間中的秒。默認(rèn)為 0。
返回值:如果成功則返回 DateTime 對(duì)象。如果失敗則返回 FALSE。
PHP 版本:5.2+,PHP 5.3.0:返回值從 NULL 變?yōu)?DateTime。
<?php
$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
23、date_timestamp_get()返回 Unix 時(shí)間戳。
date_timestamp_get(object);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
返回值:返回代表日期的 Unix 時(shí)間戳。
PHP 版本:5.3+
<?php
$date=date_create();
echo date_timestamp_get($date);
?>
1630315712
24、date_timestamp_set()設(shè)置基于 Unix 時(shí)間戳的日期和時(shí)間。
date_timestamp_set(object,unixtimestamp);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。該函數(shù)修改該對(duì)象。
unixtimestamp必需。規(guī)定代表日期的 Unix 時(shí)間戳。
返回值:返回指定格式的 DateTime 對(duì)象。如果失敗則返回 FALSE。
PHP 版本:5.3+
<?php
$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
25、date_timezone_get()返回給定 DateTime 對(duì)象的時(shí)區(qū)。
date_timezone_get(object);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。
返回值:如果成功則返回 DateTimeZone 對(duì)象,如果失敗則返回 FALSE。
PHP 版本:5.2+
<?php
$date=date_create(null,timezone_open("Europe/Paris"));
$tz=date_timezone_get($date);
echo timezone_name_get($tz);
?>
Europe/Paris
26、date_timezone_set()設(shè)置 DateTime 對(duì)象的時(shí)區(qū)。
date_timezone_set(object,timezone);
object必需。規(guī)定一個(gè)由 date_create() 返回的 DateTime 對(duì)象。該函數(shù)修改該對(duì)象。
timezone必需。規(guī)定一個(gè)代表所需時(shí)區(qū)的 DateTimeZone 對(duì)象。
提示: 查看 PHP 中支持的所有時(shí)區(qū)列表
返回值:返回指定格式的 DateTime 對(duì)象。如果失敗則返回 FALSE。
PHP 版本:5.2+,PHP 5.3.0:返回值從 NULL 改為 DateTime。
<?php
$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
27、date()格式化本地日期和時(shí)間。
date(format,timestamp);
返回將整數(shù) timestamp 按照給定的格式字串而產(chǎn)生的字符串。如果沒(méi)有給出時(shí)間戳則使用本地當(dāng)前時(shí)間。換句話(huà)說(shuō),timestamp 是可選的,默認(rèn)值為 time()。
format必需。規(guī)定輸出日期字符串的格式。可使用下列字符:
d - 一個(gè)月中的第幾天(從 01 到 31)
D - 星期幾的文本表示(用三個(gè)字母表示)
j - 一個(gè)月中的第幾天,不帶前導(dǎo)零(1 到 31)
l('L' 的小寫(xiě)形式)- 星期幾的完整的文本表示
N - 星期幾的 ISO-8601 數(shù)字格式表示(1 表示 Monday[星期一],7 表示 Sunday[星期日])
S - 一個(gè)月中的第幾天的英語(yǔ)序數(shù)后綴(2 個(gè)字符:st、nd、rd 或 th。與 j 搭配使用)
w - 星期幾的數(shù)字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
z - 一年中的第幾天(從 0 到 365)
W - 用 ISO-8601 數(shù)字格式表示一年中的星期數(shù)字(每周從 Monday[星期一]開(kāi)始)
F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])
m - 月份的數(shù)字表示(從 01 到 12)
M - 月份的短文本表示(用三個(gè)字母表示)
n - 月份的數(shù)字表示,不帶前導(dǎo)零(1 到 12)
t - 給定月份中包含的天數(shù)
L - 是否是閏年(如果是閏年則為 1,否則為 0)
o - ISO-8601 標(biāo)準(zhǔn)下的年份數(shù)字
Y - 年份的四位數(shù)表示
y - 年份的兩位數(shù)表示
a - 小寫(xiě)形式表示:am 或 pm
A - 大寫(xiě)形式表示:AM 或 PM
B - Swatch Internet Time(000 到 999)
g - 12 小時(shí)制,不帶前導(dǎo)零(1 到 12)
G - 24 小時(shí)制,不帶前導(dǎo)零(0 到 23)
h - 12 小時(shí)制,帶前導(dǎo)零(01 到 12)
H - 24 小時(shí)制,帶前導(dǎo)零(00 到 23)
i - 分,帶前導(dǎo)零(00 到 59)
s - 秒,帶前導(dǎo)零(00 到 59)
u - 微秒(PHP 5.2.2 中新增的)
e - 時(shí)區(qū)標(biāo)識(shí)符(例如:UTC、GMT、Atlantic/Azores)
I(i 的大寫(xiě)形式)- 日期是否是在夏令時(shí)(如果是夏令時(shí)則為 1,否則為 0)
O - 格林威治時(shí)間(GMT)的差值,單位是小時(shí)(實(shí)例:+0100)
P - 格林威治時(shí)間(GMT)的差值,單位是 hours:minutes(PHP 5.1.3 中新增的)
T - 時(shí)區(qū)的簡(jiǎn)寫(xiě)(實(shí)例:EST、MDT)
Z - 以秒為單位的時(shí)區(qū)偏移量。UTC 以西時(shí)區(qū)的偏移量為負(fù)數(shù)(-43200 到 50400)
c - ISO-8601 標(biāo)準(zhǔn)的日期(例如 2013-05-05T16:34:42+00:00)
r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2013 12:01:05 +0200)
U - 自 Unix 紀(jì)元(January 1 1970 00:00:00 GMT)以來(lái)經(jīng)過(guò)的秒數(shù)
同時(shí),也可使用下列預(yù)定義常量(從 PHP 5.1.0 開(kāi)始可用):
DATE_ATOM - Atom(例如:2013-04-12T15:52:01+00:00)
DATE_COOKIE - HTTP Cookies(例如:Friday, 12-Apr-13 15:52:01 UTC)
DATE_ISO8601 - ISO-8601(例如:2013-04-12T15:52:01+0000)
DATE_RFC822 - RFC 822(例如:Fri, 12 Apr 13 15:52:01 +0000)
DATE_RFC850 - RFC 850(例如:Friday, 12-Apr-13 15:52:01 UTC)
DATE_RFC1036 - RFC 1036(例如:Fri, 12 Apr 13 15:52:01 +0000)
DATE_RFC1123 - RFC 1123(例如:Fri, 12 Apr 2013 15:52:01 +0000)
DATE_RFC2822 - RFC 2822(Fri, 12 Apr 2013 15:52:01 +0000)
DATE_RFC3339 - 與 DATE_ATOM 相同(從 PHP 5.1.3 開(kāi)始)
DATE_RSS - RSS(Fri, 12 Aug 2013 15:52:01 +0000)
DATE_W3C - 萬(wàn)維網(wǎng)聯(lián)盟(例如:2013-04-12T15:52:01+00:00)
timestamp可選。規(guī)定一個(gè)整數(shù)的 Unix 時(shí)間戳。默認(rèn)是當(dāng)前的本地時(shí)間(time())。
返回值:如果成功則返回格式化的日期字符串,如果失敗則報(bào) E_WARNING 錯(cuò)并返回 FALSE。
PHP 版本:4+,PHP 5.1.0:新增 E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤。有效范圍的時(shí)間戳是從 1901 年 12 月 13 日 20:45:54 GMT 星期五 到 2038 年 1 月 19 日 03:14:07 GMT 星期二。5.1.0 之前的版本,在某些系統(tǒng)上(例如 windows)時(shí)間戳被限制在從 01-01-1970 到 19-01-2038。PHP 5.1.1:新增標(biāo)準(zhǔn)日期/時(shí)間格式常量,用于指定 format 參數(shù)。
<?php
// 設(shè)置時(shí)區(qū)
date_default_timezone_set("PRC");
// 打印當(dāng)前時(shí)間 PHP_EOL 換行符,兼容不同系統(tǒng)
echo date("Y-m-d H:i:s") . PHP_EOL;
echo date("Y 年 m 月 d 日 H 點(diǎn) i 分 s 秒") . PHP_EOL;
// 指定時(shí)間
$time = strtotime("2018-01-18 08:08:08"); // 將指定日期轉(zhuǎn)成時(shí)間戳
echo date("Y-m-d H:i:s", $time) . PHP_EOL;
?>
輸出如下所示:
2018-01-31 22:09:35
2018 年 01 月 31 日 22 點(diǎn) 09 分 35 秒
2018-01-18 08:08:08
28、getdate()返回某個(gè)時(shí)間戳或者當(dāng)前本地的日期/時(shí)間的日期/時(shí)間信息。
getdate(timestamp);
timestamp可選。規(guī)定整數(shù)的 Unix 時(shí)間戳。默認(rèn)為當(dāng)前本地時(shí)間(time())。
返回值:返回帶有與時(shí)間戳相關(guān)的信息的關(guān)聯(lián)數(shù)組:
[seconds] - 秒
[minutes] - 分
[hours] - 小時(shí)
[mday] - 一個(gè)月中的第幾天
[wday] - 一周中的某天
[mon] - 月
[year] - 年
[yday] - 一年中的某天
[weekday] - 星期幾的名稱(chēng)
[month] - 月份的名稱(chēng)
[0] - 自 Unix 紀(jì)元以來(lái)經(jīng)過(guò)的秒數(shù)
PHP 版本:4+
<?php
// Print the array from getdate()
print_r(getdate());
echo "<br><br>";
// Return date/time info of a timestamp; then format the output
$mydate=getdate(date("U"));
echo "$mydate[weekday], $mydate[month] $mydate[mday], $mydate[year]";
?>
Array (
[seconds] => 44
[minutes] => 7
[hours] => 11
[mday] => 21
[wday] => 6
[mon] => 9
[year] => 2013
[yday] => 263
[weekday] => Saturday
[month] => September
[0] => 1379776064
)
Saturday, September 21, 2013
29、gettimeofday()返回當(dāng)前時(shí)間。
gettimeofday(return_float);
return_float可選。當(dāng)設(shè)置為 TRUE 時(shí),返回一個(gè)浮點(diǎn)數(shù),而不是一個(gè)數(shù)組。默認(rèn)是 FALSE。
返回值:默認(rèn)返回一個(gè)關(guān)聯(lián)數(shù)組,帶有如下數(shù)組鍵名:R
[sec] - Unix 紀(jì)元以來(lái)的秒
[usec] - 微秒
[minuteswest] - 格林尼治以西的分
[dsttime] - 夏令時(shí)修正類(lèi)型
如果 return_float 參數(shù)設(shè)置為 true,則返回一個(gè)浮點(diǎn)數(shù)。
PHP 版本:4+,PHP 5.1.0:新增了return_float 參數(shù)。
<?php
// Print the array from gettimeofday()
print_r(gettimeofday());
echo "<br><br>";
// Print the float from gettimeofday()
echo gettimeofday(true) . "<br><br>";
// Return current time; then format the output
$mytime=gettimeofday();
echo "$mytime[sec].$mytime[usec]";
?>
Array ( [sec] => 1379776108 [usec] => 123619 [minuteswest] => 240 [dsttime] => 1 )
1379776108.1238
1379776108.123770
30、gmdate()格式化 GMT/UTC 日期和時(shí)間。
gmdate(format,timestamp);
format必需。規(guī)定輸出日期字符串的格式。可使用下列字符:
d - 一個(gè)月中的第幾天(從 01 到 31)
D - 星期幾的文本表示(用三個(gè)字母表示)
j - 一個(gè)月中的第幾天,不帶前導(dǎo)零(1 到 31)
l('L' 的小寫(xiě)形式)- 星期幾的完整的文本表示
N - 星期幾的 ISO-8601 數(shù)字格式表示(1 表示 Monday[星期一],7 表示 Sunday[星期日])
S - 一個(gè)月中的第幾天的英語(yǔ)序數(shù)后綴(2 個(gè)字符:st、nd、rd 或 th。與 j 搭配使用)
w - 星期幾的數(shù)字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
z - 一年中的第幾天(從 0 到 365)
W - 用 ISO-8601 數(shù)字格式表示一年中的星期數(shù)字(每周從 Monday[星期一]開(kāi)始)
F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])
m - 月份的數(shù)字表示(從 01 到 12)
M - 月份的短文本表示(用三個(gè)字母表示)
n - 月份的數(shù)字表示,不帶前導(dǎo)零(1 到 12)
t - 給定月份中包含的天數(shù)
L - 是否是閏年(如果是閏年則為 1,否則為 0)
o - ISO-8601 標(biāo)準(zhǔn)下的年份數(shù)字
Y - 年份的四位數(shù)表示
y - 年份的兩位數(shù)表示
a - 小寫(xiě)形式表示:am 或 pm
A - 大寫(xiě)形式表示:AM 或 PM
B - Swatch Internet Time(000 到 999)
g - 12 小時(shí)制,不帶前導(dǎo)零(1 到 12)
G - 24 小時(shí)制,不帶前導(dǎo)零(0 到 23)
h - 12 小時(shí)制,帶前導(dǎo)零(01 到 12)
H - 24 小時(shí)制,帶前導(dǎo)零(00 到 23)
i - 分,帶前導(dǎo)零(00 到 59)
s - 秒,帶前導(dǎo)零(00 到 59)
u - 微秒(PHP 5.2.2 中新增的)
e - 時(shí)區(qū)標(biāo)識(shí)符(例如:UTC、GMT、Atlantic/Azores)
I(i 的大寫(xiě)形式)- 日期是否是在夏令時(shí)(如果是夏令時(shí)則為 1,否則為 0)
O - 格林威治時(shí)間(GMT)的差值,單位是小時(shí)(實(shí)例:+0100)
P - 格林威治時(shí)間(GMT)的差值,單位是 hours:minutes(PHP 5.1.3 中新增的)
T - 時(shí)區(qū)的簡(jiǎn)寫(xiě)(實(shí)例:EST、MDT)
Z - 以秒為單位的時(shí)區(qū)偏移量。UTC 以西時(shí)區(qū)的偏移量為負(fù)數(shù)(-43200 到 50400)
c - ISO-8601 標(biāo)準(zhǔn)的日期(例如 2013-05-05T16:34:42+00:00)
r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2013 12:01:05 +0200)
U - 自 Unix 紀(jì)元(January 1 1970 00:00:00 GMT)以來(lái)經(jīng)過(guò)的秒數(shù)
同時(shí),也可使用下列預(yù)定義常量(從 PHP 5.1.0 開(kāi)始可用):
DATE_ATOM - Atom(例如:2013-04-12T15:52:01+00:00)
DATE_COOKIE - HTTP Cookies(例如:Friday, 12-Apr-13 15:52:01 UTC)
DATE_ISO8601 - ISO-8601(例如:2013-04-12T15:52:01+0000)
DATE_RFC822 - RFC 822(例如:Fri, 12 Apr 13 15:52:01 +0000)
DATE_RFC850 - RFC 850(例如:Friday, 12-Apr-13 15:52:01 UTC)
DATE_RFC1036 - RFC 1036(例如:Fri, 12 Apr 13 15:52:01 +0000)
DATE_RFC1123 - RFC 1123(例如:Fri, 12 Apr 2013 15:52:01 +0000)
DATE_RFC2822 - RFC 2822(Fri, 12 Apr 2013 15:52:01 +0000)
DATE_RFC3339 - 與 DATE_ATOM 相同(從 PHP 5.1.3 開(kāi)始)
DATE_RSS - RSS(Fri, 12 Aug 2013 15:52:01 +0000)
DATE_W3C - 萬(wàn)維網(wǎng)聯(lián)盟(例如:2013-04-12T15:52:01+00:00)
timestamp可選。規(guī)定一個(gè)整數(shù)的 Unix 時(shí)間戳。默認(rèn)是當(dāng)前的本地時(shí)間(time())。
返回值:如果成功則返回格式化的日期字符串,如果失敗則報(bào) E_WARNING 錯(cuò)并返回 FALSE。
PHP 版本:4+,PHP 5.1.0:有效范圍的時(shí)間戳是從 1901 年 12 月 13 日 20:45:54 GMT 星期五 到 2038 年 1 月 19 日 03:14:07 GMT 星期二。5.1.0 之前的版本,在某些系統(tǒng)上(例如 Windows)時(shí)間戳被限制在從 01-01-1970 到 19-01-2038。PHP 5.1.1:新增標(biāo)準(zhǔn)日期/時(shí)間格式常量,用于指定 format 參數(shù)。
<?php
echo gmdate("l") . "<br>";
echo gmdate("l jS of F Y h:i:s A") . "<br>";
echo "Oct 3, 1975 was on a ".gmdate("l", mktime(0,0,0,10,3,1975)) . "<br>";
echo gmdate(DATE_RFC822) . "<br>";
echo gmdate(DATE_ATOM,mktime(0,0,0,10,3,1975));
?>
Saturday
Saturday 21st of September 2013 03:09:15 PM
Oct 3, 1975 was on a Friday
Sat, 21 Sep 13 15:09:15 +0000
1975-10-03T04:00:00+00:00
31、gmmktime()返回 GMT 日期的 UNIX 時(shí)間戳。
gmmktime(hour,minute,second,month,day,year,is_dst);
hour可選。規(guī)定小時(shí)。
minute可選。規(guī)定分。
second可選。規(guī)定秒。
month可選。規(guī)定月。
day可選。規(guī)定天。
year可選。規(guī)定年。
is_dst可選。參數(shù)總是代表 GMT 日期,所以 is_dst 不影響結(jié)果。 注意:該參數(shù)在 PHP 5.1.0 中被廢棄。取而代之使用的是新的時(shí)區(qū)處理特性。
返回值:返回一個(gè)整數(shù) Unix 時(shí)間戳。
PHP 版本:4+,PHP 5.1.0:is_dst 參數(shù)被廢棄。
<?php
echo "Oct 3, 1975 was on a ".date("l", gmmktime(0,0,0,10,3,1975));
?>
Oct 3, 1975 was on a Thursday
32、gmstrftime()根據(jù)區(qū)域設(shè)置格式化 GMT/UTC 日期和時(shí)間。
gmstrftime(format,timestamp);
format必需。規(guī)定如何返回結(jié)果:
%a - 星期幾名稱(chēng)的簡(jiǎn)寫(xiě)
%A - 星期幾名稱(chēng)的全稱(chēng)
%b - 月份名稱(chēng)的簡(jiǎn)寫(xiě)
%B - 月份名稱(chēng)的全稱(chēng)
%c - 首選的日期和時(shí)間表示法
%C - 表示世紀(jì)的數(shù)字(年份除以 100,范圍從 00 到 99)
%d - 一個(gè)月中的第幾天(01 到 31)
%D - 時(shí)間格式,與 %m/%d/%y 表示法相同
%e - 一個(gè)月中的第幾天(1 到 31)
%g - 與 %G 表示法類(lèi)似,但不帶世紀(jì)
%G - 與 ISO 星期數(shù)對(duì)應(yīng)的 4 位數(shù)年份(見(jiàn) %V)
%h - 與 %b 表示法相同
%H - 小時(shí),使用 24 小時(shí)制(00 到 23)
%I - 小時(shí),使用 12 小時(shí)制(01 到 12)
%j - 一年中的第幾天(001 到 366)
%m - 月份(01 到 12)
%M - 分
%n - 換行符
%p - 與給定的時(shí)間值相對(duì)應(yīng)的 am 或 pm
%r - a.m. 和 p.m. 的時(shí)間標(biāo)記法
%R - 24 小時(shí)制的時(shí)間標(biāo)記法
%S - 秒
%t - tab 制表符
%T - 當(dāng)前時(shí)間,與 %H:%M:%S 表示法相同
%u - 星期幾的數(shù)字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系統(tǒng)中,Sunday[星期日] = 1
%U - 當(dāng)年包含的周數(shù),從第一個(gè)星期日開(kāi)始,作為第一周的第一天
%V - 當(dāng)年包含的 ISO 8601 格式下的周數(shù)(01 到 53),week 1 表示當(dāng)年的第一周,至少要有四天,且以星期一作為周的第一天
%W - 當(dāng)年包含的周數(shù),從第一個(gè)星期一開(kāi)始,作為第一周的第一天
%w - 以十進(jìn)制數(shù)形式表示一周中的某天,Sunday[星期日] = 0
%x - 首選的日期表示法,不帶時(shí)間
%X - 首選的時(shí)間表示法,不帶日期
%y - 不包含表示世紀(jì)的數(shù)字的年份表示(范圍從 00 到 99)
%Y - 包含表示世紀(jì)的數(shù)字的年份表示
%Z 或 %z - 時(shí)區(qū)名稱(chēng)或簡(jiǎn)寫(xiě)
%% - 輸出一個(gè) % 字符
timestamp可選。規(guī)定需要格式化的日期/時(shí)間的 Unix 時(shí)間戳。默認(rèn)為當(dāng)前時(shí)間(time())。
返回值:返回根據(jù) format 使用給定的 timestamp 格式化的字符串。月份和星期幾的名稱(chēng)和其他語(yǔ)言相關(guān)的字符串遵守 setlocale() 中的當(dāng)前區(qū)域設(shè)置。
PHP 版本:4+
<?php
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
33、idate()格式化本地時(shí)間/日期為整數(shù)。
idate(format,timestamp);
format必需。規(guī)定如何返回結(jié)果:
B - Swatch Beat/Internet Time
d - 一個(gè)月中的第幾天
h - 小時(shí)(12 小時(shí)制)
H - 小時(shí)(24 小時(shí)制)
i - 分
I - 如果啟用夏令時(shí)則返回 1,否則返回 0
L - 如果閏年則返回 1,否則返回 0
m - 月份的數(shù)字
s - 秒
t - 本月的總天數(shù)
U - 自 Unix 紀(jì)元(January 1 1970 00:00:00 GMT)以來(lái)經(jīng)過(guò)的秒數(shù),與 time() 作用相同
w - 星期中的第幾天(星期天是 0)
W - ISO-8601 格式年份中的第幾個(gè)星期,每星期從星期一開(kāi)始
y - 年份(1 或 2 位數(shù)字)
Y - 年份(4 位數(shù)字)
z - 一年中的第幾天
Z - 以秒為單位的時(shí)區(qū)偏移量
timestamp可選。規(guī)定需要格式化的日期/時(shí)間的 Unix 時(shí)間戳。默認(rèn)為當(dāng)前時(shí)間(time())。
返回值:返回根據(jù)指定的 format 使用給定的 timestamp 格式化的整數(shù)。
PHP 版本:5+,PHP 5.1.0:增加 E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤
<?php
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>";
?>
448
30
5
17
45
0
0
8
25
31
1630316725
1
35
21
2021
241
28800
34、localtime()返回本地時(shí)間。
localtime(timestamp,is_assoc);
timestamp可選。規(guī)定 Unix 時(shí)間戳。如果未規(guī)定 timestamp,則默認(rèn)為當(dāng)前的本地時(shí)間 time()。
is_assoc可選。規(guī)定返回關(guān)聯(lián)數(shù)組還是數(shù)值數(shù)組。如果為 FALSE,則返回?cái)?shù)值數(shù)組。如果為 TRUE,則返回關(guān)聯(lián)數(shù)組。默認(rèn)為 FALSE。
關(guān)聯(lián)數(shù)組的鍵名如下所示:
[tm_sec] - 秒數(shù)
[tm_min] - 分鐘數(shù)
[tm_hour] - 小時(shí)
[tm_mday] - 月份中的第幾天
[tm_mon] - 年份中的第幾個(gè)月,從 0 開(kāi)始表示一月份
[tm_year] - 年份,從 1900 開(kāi)始
[tm_wday] - 星期中的第幾天 (Sunday=0)
[tm_yday] - 年中的第幾天
[tm_isdst] - 夏令時(shí)當(dāng)前是否生效
返回值:返回包含 Unix 時(shí)間戳組件的數(shù)組。
PHP 版本:4+,PHP 5.1.0:增加 E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤。
<?php
print_r(localtime());
echo "<br><br>";
print_r(localtime(time(),true));
?>
Array (
[0] => 15
[1] => 13
[2] => 11
[3] => 21
[4] => 8
[5] => 113
[6] => 6
[7] => 263
[8] => 1
)
Array (
[tm_sec] => 15
[tm_min] => 13
[tm_hour] => 11
[tm_mday] => 21
[tm_mon] => 8
[tm_year] => 113
[tm_wday] => 6
[tm_yday] => 263
[tm_isdst] => 1
)
35、microtime()返回當(dāng)前 Unix 時(shí)間戳的微秒數(shù)。
microtime(get_as_float);
get_as_float可選。當(dāng)設(shè)置為 TRUE 時(shí),規(guī)定函數(shù)應(yīng)該返回一個(gè)浮點(diǎn)數(shù),否則返回一個(gè)字符串。默認(rèn)為 FALSE。
返回值:默認(rèn)返回字符串 "microsec sec" ,其中 sec 為自 Unix 紀(jì)元(0:00:00 January 1, 1970 GMT)起的秒數(shù),microsec 為微秒部分。如果 get_as_float 參數(shù)設(shè)置為 TRUE,則返回一個(gè)浮點(diǎn)數(shù),表示自 Unix 紀(jì)元起精確到微秒的以秒為單位的當(dāng)前時(shí)間。
PHP 版本:4+,PHP 5.0.0:新增 get_as_float 參數(shù)。
<?php
echo(microtime());
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = microtime_float();
usleep(100);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Did nothing in $time secondsn";
?>
0.27165800 1379776428Did nothing in 0.0047760009765625 seconds
36、mktime()返回一個(gè)日期的 Unix 時(shí)間戳。
mktime(hour,minute,second,month,day,year,is_dst);
hour可選。規(guī)定小時(shí)。
minute可選。規(guī)定分。
second可選。規(guī)定秒。
month可選。規(guī)定月。
day可選。規(guī)定天。
year可選。規(guī)定年。
is_dst可選。如果時(shí)間在夏令時(shí)期間,則設(shè)置為 1,否則設(shè)置為 0,若未知?jiǎng)t設(shè)置為 -1(默認(rèn))。如果未知,PHP 會(huì)試圖找到自己(可能產(chǎn)生意外的結(jié)果)。 注意:該參數(shù)在 PHP 5.1.0 中被廢棄。取而代之使用的是新的時(shí)區(qū)處理特性。
返回值:返回一個(gè)整數(shù) Unix 時(shí)間戳,如果錯(cuò)誤則返回 FALSE。
PHP 版本:4+,PHP 5.3.0:如果使用 is_dst 參數(shù),則拋出 E_DEPRECATED。PHP 5.1.0:is_dst 參數(shù)被廢棄。如果 mktime() 被調(diào)用時(shí)不帶參數(shù),拋出 E_STRICT 通知。請(qǐng)使用 time() 函數(shù)代替。
<?php
echo "a ".date("l", mktime(0,0,0,10,3,1975)) . "<br><br>";
echo date("M-d-Y",mktime(0,0,0,12,36,2001)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,14,1,2001)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,1,1,2001)) . "<br>";
echo date("M-d-Y",mktime(0,0,0,1,1,99)) . "<br>";
?>
a Friday
Jan-05-2002
Feb-01-2002
Jan-01-2001
Jan-01-1999
37、strftime()根據(jù)區(qū)域設(shè)置格式化本地時(shí)間/日期。
strftime(format,timestamp);
format必需。規(guī)定如何返回結(jié)果:
%a - 星期幾名稱(chēng)的簡(jiǎn)寫(xiě)
%A - 星期幾名稱(chēng)的全稱(chēng)
%b - 月份名稱(chēng)的簡(jiǎn)寫(xiě)
%B - 月份名稱(chēng)的全稱(chēng)
%c - 首選的日期和時(shí)間表示法
%C - 表示世紀(jì)的數(shù)字(年份除以 100,范圍從 00 到 99)
%d - 一個(gè)月中的第幾天(01 到 31)
%D - 時(shí)間格式,與 %m/%d/%y 表示法相同
%e - 一個(gè)月中的第幾天(1 到 31)
%g - 與 %G 表示法類(lèi)似,但不帶世紀(jì)
%G - 與 ISO 星期數(shù)對(duì)應(yīng)的 4 位數(shù)年份(見(jiàn) %V)
%h - 與 %b 表示法相同
%H - 小時(shí),使用 24 小時(shí)制(00 到 23)
%I - 小時(shí),使用 12 小時(shí)制(01 到 12)
%j - 一年中的第幾天(001 到 366)
%m - 月份(01 到 12)
%M - 分
%n - 換行符
%p - 與給定的時(shí)間值相對(duì)應(yīng)的 am 或 pm
%r - a.m. 和 p.m. 的時(shí)間標(biāo)記法
%R - 24 小時(shí)制的時(shí)間標(biāo)記法
%S - 秒
%t - tab 制表符
%T - 當(dāng)前時(shí)間,與 %H:%M:%S 表示法相同
%u - 星期幾的數(shù)字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系統(tǒng)中,Sunday[星期日] = 1
%U - 當(dāng)年包含的周數(shù),從第一個(gè)星期日開(kāi)始,作為第一周的第一天
%V - 當(dāng)年包含的 ISO 8601 格式下的周數(shù)(01 到 53),week 1 表示當(dāng)年的第一周,至少要有四天,且以星期一作為周的第一天
%W - 當(dāng)年包含的周數(shù),從第一個(gè)星期一開(kāi)始,作為第一周的第一天
%w - 以十進(jìn)制數(shù)形式表示一周中的某天,Sunday[星期日] = 0
%x - 首選的日期表示法,不帶時(shí)間
%X - 首選的時(shí)間表示法,不帶日期
%y - 不包含表示世紀(jì)的數(shù)字的年份表示(范圍從 00 到 99)
%Y - 包含表示世紀(jì)的數(shù)字的年份表示
%Z 或 %z - 時(shí)區(qū)名稱(chēng)或簡(jiǎn)寫(xiě)
%% - 輸出一個(gè) % 字符
timestamp可選。規(guī)定需要格式化的日期/時(shí)間的 Unix 時(shí)間戳。默認(rèn)為當(dāng)前時(shí)間(time())。
返回值:返回根據(jù) format 使用給定的 timestamp 格式化的字符串。月份和星期幾的名稱(chēng)和其他語(yǔ)言相關(guān)的字符串遵守 setlocale() 中的當(dāng)前區(qū)域設(shè)置。
PHP 版本:4+,PHP 5.1.0:增加 E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤。
<?php
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
2021. August 30. Monday. 17:52:10 CST
38、strptime()解析由 strftime() 生成的時(shí)間/日期。
strptime(date,format);
date必需。要解析的字符串(例如:由 strftime() 返回的)。
format必須。規(guī)定日期中要使用的格式:
%a - 星期幾名稱(chēng)的簡(jiǎn)寫(xiě)
%A - 星期幾名稱(chēng)的全稱(chēng)
%b - 月份名稱(chēng)的簡(jiǎn)寫(xiě)
%B - 月份名稱(chēng)的全稱(chēng)
%c - 首選的日期和時(shí)間表示法
%C - 表示世紀(jì)的數(shù)字(年份除以 100,范圍從 00 到 99)
%d - 一個(gè)月中的第幾天(01 到 31)
%D - 時(shí)間格式,與 %m/%d/%y 表示法相同
%e - 一個(gè)月中的第幾天(1 到 31)
%g - 與 %G 表示法類(lèi)似,但不帶世紀(jì)
%G - 與 ISO 星期數(shù)對(duì)應(yīng)的 4 位數(shù)年份(見(jiàn) %V)
%h - 與 %b 表示法相同
%H - 小時(shí),使用 24 小時(shí)制(00 到 23)
%I - 小時(shí),使用 12 小時(shí)制(01 到 12)
%j - 一年中的第幾天(001 到 366)
%m - 月份(01 到 12)
%M - 分
%n - 換行符
%p - 與給定的時(shí)間值相對(duì)應(yīng)的 am 或 pm
%r - a.m. 和 p.m. 的時(shí)間標(biāo)記法
%R - 24 小時(shí)制的時(shí)間標(biāo)記法
%S - 秒
%t - tab 制表符
%T - 當(dāng)前時(shí)間,與 %H:%M:%S 表示法相同
%u - 星期幾的數(shù)字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系統(tǒng)中,Sunday[星期日] = 1
%U - 當(dāng)年包含的周數(shù),從第一個(gè)星期日開(kāi)始,作為第一周的第一天
%V - 當(dāng)年包含的 ISO 8601 格式下的周數(shù)(01 到 53),week 1 表示當(dāng)年的第一周,至少要有四天,且以星期一作為周的第一天
%W - 當(dāng)年包含的周數(shù),從第一個(gè)星期一開(kāi)始,作為第一周的第一天
%w - 以十進(jìn)制數(shù)形式表示一周中的某天,Sunday[星期日] = 0
%x - 首選的日期表示法,不帶時(shí)間
%X - 首選的時(shí)間表示法,不帶日期
%y - 不包含表示世紀(jì)的數(shù)字的年份表示(范圍從 00 到 99)
%Y - 包含表示世紀(jì)的數(shù)字的年份表示
%Z 或 %z - 時(shí)區(qū)名稱(chēng)或簡(jiǎn)寫(xiě)
%% - 輸出一個(gè) % 字符
返回值:如果成功該函數(shù)返回一個(gè)帶有解析日期的數(shù)組。如果失敗則返回 FALSE。
返回?cái)?shù)組的鍵名含義如下所示:
[tm_sec] - 當(dāng)前分鐘內(nèi)的秒數(shù)(0-61)
[tm_min] - 當(dāng)前小時(shí)內(nèi)的分鐘數(shù)(0-59)
[tm_hour] - 午夜起的小時(shí)數(shù)(0-23)
[tm_mday] - 月份中的第幾天(1-31)
[tm_mon] - 自一月起過(guò)了幾個(gè)月(0-11)
[tm_year] - 自 1900 年起過(guò)了幾年
[tm_wday] - 自星期天起過(guò)了幾天(0-6)
[tm_yday] - 本年自 1 月 1 日起過(guò)了多少天(0-365)
[unparsed] - 日期中未能通過(guò)指定的 format 識(shí)別的部分
PHP 版本:5.1+
<?php
$format="%d/%m/%Y %H:%M:%S";
$strf=strftime($format);
echo("$strf");
print_r(strptime($strf,$format));
?>
30/08/2021 17:54:06
39、strtotime()將任何英文文本的日期或時(shí)間描述解析為 Unix 時(shí)間戳。
int strtotime ( string $time [, int $now = time() ] )
time必需。規(guī)定日期/時(shí)間字符串。
now可選。規(guī)定用來(lái)計(jì)算返回值的時(shí)間戳。如果省略該參數(shù),則使用當(dāng)前時(shí)間。
返回值:成功則返回時(shí)間戳,失敗則返回 FALSE。
PHP 版本:4+,PHP5.3.0:現(xiàn)在相對(duì)時(shí)間格式,比如這一周、前一周、上一周、下一周,規(guī)定一周從星期一到星期日,而不是使用相對(duì)于當(dāng)前日期/時(shí)間的前后 7 天。
PHP 5.3.0: 現(xiàn)在 24:00 是有效的格式。
PHP 5.2.7:在這之前的版本中,如果請(qǐng)求一個(gè)月中某個(gè)給定日期且該日期剛好是該月的第一天,則會(huì)錯(cuò)誤地把增加一個(gè)星期到返回的時(shí)間戳中,這點(diǎn)現(xiàn)在已經(jīng)得到更正。
PHP 5.1.0:如果失敗則返回 FALSE(在這之前的版本則返回 -1),并增加了 E_STRICT 和 E_NOTICE 時(shí)區(qū)錯(cuò)誤。
PHP 5.0.2:現(xiàn)在正確計(jì)算 "now" 和其他相對(duì)時(shí)間是以當(dāng)前時(shí)間為準(zhǔn),而不是以今天午夜的時(shí)間為準(zhǔn)。
PHP 5.0.0:允許微秒(但微秒數(shù)通常被忽略)。
<?php
date_default_timezone_set("PRC");
$time = strtotime("2018-01-18 08:08:08"); // 將指定日期轉(zhuǎn)成時(shí)間戳
echo $time, PHP_EOL;
echo strtotime("now"), PHP_EOL;
echo strtotime("now"), PHP_EOL;
echo strtotime("10 September 2000"), PHP_EOL;
echo strtotime("+1 day"), PHP_EOL;
echo strtotime("+1 week"), PHP_EOL;
echo strtotime("+1 week 2 days 4 hours 2 seconds"), PHP_EOL;
echo strtotime("next Thursday"), PHP_EOL;
echo strtotime("last Monday"), PHP_EOL;
?>
輸出結(jié)果:
1516234088
1517408272
1517408272
968515200
1517494672
1518013072
1518200274
1517414400
1517155200
40、time()返回當(dāng)前時(shí)間的 Unix 時(shí)間戳。
time();
返回值:返回一個(gè)包含當(dāng)前時(shí)間的 Unix 時(shí)間戳的整數(shù)。
PHP 版本:4+
<?php
$t=time();
echo($t . "<br>");
echo(date("Y-m-d",$t));
?>
1630317436
2021-08-30
41、
timezone_abbreviations_list()返回包含夏令時(shí)、偏移量和時(shí)區(qū)名稱(chēng)的關(guān)聯(lián)數(shù)組。
timezone_abbreviations_list();
返回值:成功則返回一個(gè)關(guān)聯(lián)數(shù)組,失敗則返回 FALSE。
PHP 版本:5.2+
<?php
$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
)
)
42、timezone_identifiers_list()返回帶有所有時(shí)區(qū)標(biāo)識(shí)符的數(shù)值數(shù)組。
timezone_identifiers_list(what,country);
what可選。規(guī)定一個(gè) DateTimeZone 類(lèi)常量
1 = AFRICA
2 = AMERICA
4 = ANTARCTICA
8 = ARCTIC
16 = ASIA
32 = ATLANTIC
64 = AUSTRALIA
128 = EUROPE
256 = INDIAN
512 = PACIFIC
1024 = UTC
2047 = ALL
4095 = ALL_WITH_BC
4096 = PER_COUNTRY
country可選。規(guī)定兩個(gè)字母的 ISO 3166-1 兼容的國(guó)家代碼。
返回值:成功則返回一個(gè)數(shù)值數(shù)組,失敗則返回 FALSE。
PHP 版本:5.2+,PHP 5.3:新增可選的 what 和 country 參數(shù)。
<?php
print_r(timezone_identifiers_list(1));
?>
Array (
[0] => Africa/Abidjan
[1] => Africa/Accra
[2] => Africa/Addis_Ababa
[3] => Africa/Algiers
[4] => Africa/Asmara
[5] => Africa/Bamako
[6] => Africa/Bangui
[7] => Africa/Banjul
[8] => Africa/Bissau
[9] => Africa/Blantyre
[10] => Africa/Brazzaville
[11] => Africa/Bujumbura
[12] => Africa/Cairo
[13] => Africa/Casablanca
[14] => Africa/Ceuta
[15] => Africa/Conakry
[16] => Africa/Dakar
[17] => Africa/Dar_es_Salaam
[18] => Africa/Djibouti
[19] => Africa/Douala
[20] => Africa/El_Aaiun
[21] => Africa/Freetown
[22] => Africa/Gaborone
[23] => Africa/Harare
[24] => Africa/Johannesburg
[25] => Africa/Juba
[26] => Africa/Kampala
[27] => Africa/Khartoum
[28] => Africa/Kigali
[29] => Africa/Kinshasa
[30] => Africa/Lagos
[31] => Africa/Libreville
[32] => Africa/Lome
[33] => Africa/Luanda
[34] => Africa/Lubumbashi
[35] => Africa/Lusaka
[36] => Africa/Malabo
[37] => Africa/Maputo
[38] => Africa/Maseru
[39] => Africa/Mbabane
[40] => Africa/Mogadishu
[41] => Africa/Monrovia
[42] => Africa/Nairobi
[43] => Africa/Ndjamena
[44] => Africa/Niamey
[45] => Africa/Nouakchott
[46] => Africa/Ouagadougou
[47] => Africa/Porto-Novo
[48] => Africa/Sao_Tome
[49] => Africa/Tripoli
[50] => Africa/Tunis
[51] => Africa/Windhoek
)
43、timezone_location_get()返回指定時(shí)區(qū)的位置信息。
timezone_location_get(object);
object必需。規(guī)定一個(gè)由 timezone_open() 返回的 DateTimeZone 對(duì)象。
返回值:返回一個(gè)包含時(shí)區(qū)的位置信息的數(shù)組。
PHP 版本:5.3+
<?php
$tz=timezone_open("Asia/Taipei");
print_r(timezone_location_get($tz));
?>
Array (
[country_code] => TW
[latitude] => 25.05
[longitude] => 121.5
[comments] =>
)
44、timezone_name_from_ abbr()根據(jù)時(shí)區(qū)縮略語(yǔ)返回時(shí)區(qū)名稱(chēng)。
timezone_name_from_abbr(abbr,gmtoffset,isdst);
abbr必需。規(guī)定時(shí)區(qū)縮略語(yǔ)。
gmtoffset可選。規(guī)定相對(duì)于 GMT 的以秒為單位的偏移量。默認(rèn)為 -1,表示返回第一個(gè)被找到的匹配縮略語(yǔ)的時(shí)區(qū)。否則搜索精確的偏移量。如果沒(méi)有找到,則返回任意偏移量的第一個(gè)時(shí)區(qū)。
isdst可選。規(guī)定夏令時(shí)指示器。
-1 = 默認(rèn)。搜索時(shí)是否考慮時(shí)區(qū)的夏令時(shí)
1 = 表示 gmtoffset 是受夏令時(shí)影響的一個(gè)偏移量
0 = 表示 gmtoffset 是不受夏令時(shí)影響的一個(gè)偏移量
返回值:成功則返回時(shí)區(qū)名稱(chēng),失敗則返回 FALSE。
PHP 版本:5.1.3+
<?php
echo timezone_name_from_abbr("EST") . "<br>";
echo timezone_name_from_abbr("",7200,0);
?>
America/New_York
Europe/Helsinki
45、timezone_name_get()返回時(shí)區(qū)的名稱(chēng)。
timezone_name_get(object);
object必需。規(guī)定一個(gè) DateTimeZone 對(duì)象。
返回值:從時(shí)區(qū)列表中返回時(shí)區(qū)的名稱(chēng)。
PHP 版本:5.2+
<?php
$tz=timezone_open("Europe/Paris");
echo timezone_name_get($tz);
?>
Europe/Paris
46、timezone_offset_get()返回相對(duì)于 GMT 的時(shí)區(qū)偏移。
timezone_offset_get(object,datetime);
object必需。規(guī)定一個(gè)由 timezone_open() 返回的 DateTimeZone 對(duì)象。
datetime必需。規(guī)定需要計(jì)算偏移的日期/時(shí)間。
返回值:成功則返回以秒為單位的時(shí)區(qū)偏移,失敗則返回 FALSE。
PHP 版本:5.2+
<?php
$tz=timezone_open("Asia/Taipei");
$dateTimeOslo=date_create("now",timezone_open("Europe/Oslo"));
echo timezone_offset_get($tz,$dateTimeOslo);
?>
28800
47、timezone_open()創(chuàng)建一個(gè)新的 DateTimeZone 對(duì)象。
timezone_open(timezone);
timezone必需。規(guī)定一個(gè)時(shí)區(qū)。
提示: 查看 PHP 中支持的所有時(shí)區(qū)列表
返回值:成功則返回 DateTimeZone 對(duì)象,失敗則返回 FALSE。
PHP 版本:5.2+
<?php
$tz=timezone_open("Europe/Paris");
echo timezone_name_get($tz);
?>
Europe/Paris
48、timezone_transitions_get()返回時(shí)區(qū)的所有轉(zhuǎn)換。
timezone_transitions_get(obj)
obj -DateTimeZone對(duì)象
返回值:timezone_transitions_get()函數(shù)返回包含關(guān)聯(lián)數(shù)組的數(shù)字索引數(shù)組,該數(shù)組在成功時(shí)會(huì)發(fā)生所有轉(zhuǎn)換,而在失敗時(shí)會(huì)發(fā)生FALSE。
<?php
$tz = timezone_open('Asia/Colombo');
$res= timezone_transitions_get( $tz );
print_r(array_slice($res, 0, 2));
?>
Array (
[0] => Array (
[ts] => -9223372036854775808
[time] => -292277022657-01-27T08:29:52+0000
[offset] => 19164
[isdst] =>
[abbr] => LMT
)
[1] => Array (
[ts] => -2147483648
[time] => 1901-12-13T20:45:52+0000
[offset] => 19172
[isdst] =>
[abbr] => MMT
)
)
49、timezone_version_get()返回時(shí)區(qū)數(shù)據(jù)庫(kù)的版本。
timezone_version_get();
返回值:以字符串形式返回時(shí)區(qū)數(shù)據(jù)庫(kù)的版本。
PHP 版本:5.3+
<?php
echo timezone_version_get();
?>
2012.2






