Runtime 配置
Date/Time 函数的行为受到 php.ini 中设置的影响:
date.timezone 默认时区(所有的 Date/Time 函数使用该选项) “”
date.default_latitude 默认纬度(date_sunrise() 和 date_sunset() 使用该选项) “31.7667”
date.default_longitude 默认经度(date_sunrise() 和 date_sunset() 使用该选项) “35.2333”
date.sunrise_zenith 默认日出天顶(date_sunrise() 和 date_sunset() 使用该选项) “90.83”
date.sunset_zenith 默认日落天顶(date_sunrise() 和 date_sunset() 使用该选项) “90.83”
PHP 5 预定义的 Date/Time 常量
DATE_ATOM Atom (例如:2005-08-15T16:13:03+0000)
DATE_COOKIE HTTP Cookies (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_ISO8601 ISO-8601 (例如:2005-08-14T16:13:03+0000)
DATE_RFC822 RFC 822 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC850 RFC 850 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1036 RFC 1036 (例如:Sunday, 14-Aug-05 16:13:03 UTC)
DATE_RFC1123 RFC 1123 (例如:Sun, 14 Aug 2005 16:13:03 UTC)
DATE_RFC2822 RFC 2822 (Sun, 14 Aug 2005 16:13:03 +0000)
DATE_RSS RSS (Sun, 14 Aug 2005 16:13:03 UTC)
DATE_W3C World Wide Web Consortium (例如: 2005-08-14T16:13:03+0000)
函数
- checkdate(月,日,年) 验证格利高里日期。返回布尔型
- date() 格式化本地日期和时间。返回字符串类型
参数一:format 必需。规定输出日期字符串的格式。
可使用下列字符:
d - 一个月中的第几天(从 01 到 31)
D - 星期几的文本表示(用三个字母表示)
j - 一个月中的第几天,不带前导零(1 到 31)
l(’L’ 的小写形式)- 星期几的完整的文本表示
N - 星期几的 ISO-8601 数字格式表示(1表示Monday[星期一],7表示Sunday[星期日])
S - 一个月中的第几天的英语序数后缀(2 个字符:st、nd、rd 或 th。与 j 搭配使用)
w - 星期几的数字表示(0 表示 Sunday[星期日],6 表示 Saturday[星期六])
z - 一年中的第几天(从 0 到 365)
W - 用 ISO-8601 数字格式表示一年中的星期数字(每周从 Monday[星期一]开始)
F - 月份的完整的文本表示(January[一月份] 到 December[十二月份])
m - 月份的数字表示(从 01 到 12)
M - 月份的短文本表示(用三个字母表示)
n - 月份的数字表示,不带前导零(1 到 12)
t - 给定月份中包含的天数
L - 是否是闰年(如果是闰年则为 1,否则为 0)
o - ISO-8601 标准下的年份数字
Y - 年份的四位数表示
y - 年份的两位数表示
a - 小写形式表示:am 或 pm
A - 大写形式表示:AM 或 PM
B - Swatch Internet Time(000 到 999)
g - 12 小时制,不带前导零(1 到 12)
G - 24 小时制,不带前导零(0 到 23)
h - 12 小时制,带前导零(01 到 12)
H - 24 小时制,带前导零(00 到 23)
i - 分,带前导零(00 到 59)
s - 秒,带前导零(00 到 59)
u - 微秒(PHP 5.2.2 中新增的)
e - 时区标识符(例如:UTC、GMT、Atlantic/Azores)
I(i 的大写形式)- 日期是否是在夏令时(如果是夏令时则为 1,否则为 0)
O - 格林威治时间(GMT)的差值,单位是小时(实例:+0100)
P - 格林威治时间(GMT)的差值,单位是 hours:minutes(PHP 5.1.3 中新增的)
T - 时区的简写(实例:EST、MDT)
Z - 以秒为单位的时区偏移量。UTC 以西时区的偏移量为负数(-43200 到 50400)
c - ISO-8601 标准的日期(例如 2013-05-05T16:34:42+00:00)
r - RFC 2822 格式的日期(例如 Fri, 12 Apr 2013 12:01:05 +0200)
U - 自 Unix 纪元(January 1 1970 00:00:00 GMT)以来经过的秒数
同时,也可使用下列预定义常量(从 PHP 5.1.0 开始可用):
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 开始)
DATE_RSS - RSS(Fri, 12 Aug 2013 15:52:01 +0000)
DATE_W3C - 万维网联盟(例如:2013-04-12T15:52:01+00:00)
参数二:timestamp 可选。规定整数的 Unix 时间戳。默认是当前的本地时间(time())。
注意:可以配合使用
<?php
// 输出日
echo date("l") . "<br>";
// 输出日、日期、月、年、时间 AM 或 PM
echo date("l jS \of F Y h:i:s A");
?>
gettimeofday(return_float);函数返回当前时间。
参数:return_float 可选。当设置为 TRUE 时,返回浮点数,而不是数组。默认是 FALSE。
返回值:[sec] - Unix 纪元以来的秒(时间戳)
[usec] - 微秒
[minuteswest] - 格林尼治以西的分
[dsttime] - 夏令时修正类型getdate(timestamp)返回当前本地的日期/时间的日期/时间信息:
返回值:返回带有与时间戳相关的信息的关联数组:
[seconds] - 秒
[minutes] - 分
[hours] - 小时
[mday] - 一个月中的第几天
[wday] - 一周中的某天
[mon] - 月
[year] - 年
[yday] - 一年中的某天
[weekday] - 星期几的名称
[month] - 月份的名称
[0] - 自 Unix 纪元以来经过的秒数time():直接获取当前时间戳
gmmktime(hour,minute,second,month,day,year,is_dst) 函数返回 GMT 日期的 UNIX 时间戳。
提示:该函数与 mktime() 相同,不同的是传递的参数代表了 GMT 日期。mktime(hour,minute,second,month,day,year,is_dst);函数返回日期的 UNIX 时间戳。
strtotime() 函数将任何英文文本的日期或时间描述解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。
注意:如果年份表示使用两位数格式,则值 0-69 会映射为 2000-2069,值 70-100 会映射为 1970-2000。
注意:请注意 m/d/y 或 d-m-y 格式的日期,如果分隔符是斜线(/),则使用美洲的 m/d/y 格式。如果分隔符是横杠(-)或者点(.),则使用欧洲的 d-m-y 格式。为了避免潜在的错误,您应该尽可能使用 YYYY-MM-DD 格式getlastmod():获取当前文件的修改时间戳。
- date_default_timezone_get();函数返回脚本中所有日期/时间函数使用的默认时区。
- date_default_timezone_set(“Asia/Shanghai”);函数设置脚本中所有日期/时间函数使用的默认时区。
- localtime(timestamp,is_assoc);函数返回本地时间。is_assoc:可选。规定返回关联数组还是索引数组。
microtime(get_as_float) 函数返回当前 Unix 时间戳的微秒数。get_as_float:可选,返回的是是浮点数还是字符串。
date_interval_create_from_date_string() 从字符串的相关部分建立 DateInterval。
date_add(object,interval) 函数向某个日期添加日、月、年、时、分和秒。
参数:
object 必需。规定 date_create() 返回的 DateTime 对象。
interval 必需。规定 DateInterval 对象。date_create_from_format(format,time,timezone) 返回根据指定格式进行格式化的新的 DateTime 对象。
- date_create(time,timezone); 函数返回新的 DateTime 对象。
date_date_set(object,year,month,day) 函数设置新的日期。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。
year 必需。规定日期中的年。
month 必需。规定日期中的月。
day 必需。规定日期中的日。date_diff(datetime1,datetime2,absolute);函数返回两个 DateTime 对象间的差值。
参数:datetime1 必需。规定 DateTime 对象。
datetime2 必需。规定 DateTime 对象。
absolute 可选。规定布尔值。TRUE 表示间隔/差值必须是正的。默认是 FALSE。date_format(object,format) 函数返回根据指定格式进行格式化的日期。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。
format 必需。规定日期的格式。date_get_last_errors() 函数返回解析日期字符串时找到的警告/错误。
- date_interval_format(format) 函数是 DateInterval::format() 的别名。用于格式化时间间隔。
- date_isodate_set(object,year,week,day);函数根据 ISO 8601 标准设置日期,使用周和天的偏移量(而不是使用一个具体的日期)。
- date_modify(object,modify) 函数修改时间戳。
<?php
$date=date_create("2016-09-25");
date_modify($date,"+4 days");
echo date_format($date,"Y-m-d");
?>
date_offset_get(object) 函数返回时区偏移。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。date_parse_from_format(format,date) 函数根据指定的格式返回包含指定日期信息的关联数组。
format 必需。规定格式(date_create_from_format() 接受的格式)。
date 必需。指定日期,字符串值。date_parse(date) 返回带有关于指定日期的详细信息的关联数组。
参数:date 必需。规定日期(strtotime() 接受的格式)。date_sub(object,interval) 从指定日期减去日、月、年、时、分和秒。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。
interval 必需。规定 DateInterval 对象。
<?php
$date=date_create("2016-09-29");
date_sub($date,date_interval_create_from_date_string("4 days"));
echo date_format($date,"Y-m-d");
?>
date_sun_info(timestamp,latitude,longitude) 返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。
参数:timestamp 必需。规定时间戳。
latitude 必需。必需。规定纬度,以度数计。
longitude 必需。必需。规定经度,以度数计。date_sunrise(timestamp,format,latitude,longitude,zenith,gmtoffset) 返回指定日期与位置的日出时间。
参数:
timestamp 必需。规定要计算日出时间的日期时间戳。
format 可选。规定如何返回结果:
SUNFUNCS_RET_STRING(以字符串返回结果,比如 16:46)(默认)
SUNFUNCS_RET_DOUBLE(以浮点数返回结果,比如 16.78243132)
SUNFUNCS_RET_TIMESTAMP(以整数(时间戳)返回结果,比如 1095034606)
latitude 可选。规定地点的纬度。默认是指北纬。如需指定南纬,请传递负值。
longitude 可选。规定地点的经度。默认是指东经。如需指定西经,请传递负值。
zenith 可选。默认为 date.sunrise_zenith。
gmtoffset 可选。规定 GMT 与本地时间的差值,以小时计。date_sunset() 返回指定日期与位置的日落时间。(同上)
date_time_set(object,hour,minute,second) 设置时间。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。
hour 必需。规定时间中的小时。
minute 必需。规定时间中的分。
second 可选。规定时间中的秒。默认为 0。date_timestamp_get(object) 返回 Unix 时间戳。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。date_timestamp_set(object,unixtimestamp) 设置基于 Unix 时间戳的日期和时间。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。本函数修改该对象。
unixtimestamp 必需。规定代表日期的 Unix 时间戳。date_timezone_get(object) 返回给定 DateTime 对象的时区。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。date_timezone_set(object,timezone) 设置 DateTime 对象的时区。
参数:object 必需。规定由 date_create() 返回的 DateTime 对象。本函数修改该对象。
timezone
必需。规定代表所需时区的 DateTimeZone 对象。getdate(timestamp) 返回某个时间戳或者当前本地的日期/时间的日期/时间信息。
gmdate(format,timestamp)格式化 GMT/UTC 日期和时间。
gmmktime(hour,minute,second,month,day,year,is_dst); 返回 GMT 日期的 UNIX 时间戳。
gmstrftime(format,timestamp) 根据区域设置对 GMT/UTC 日期和时间进行格式化。
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 - 以秒为单位的时区偏移量
timestamp 可选。规定代表需要格式化的日期/时间的 Unix 时间戳。默认为当前本地时间(time())。localtime((timestamp,is_assoc) 返回本地时间。
strftime(format,timestamp) 根据区域设置对本地时间/日期进行格式化。
参数:format 必需。规定如何返回结果:
%a - 星期几名称的简写
%A - 星期几名称的全称
%b - 月份名称的简写
%B - 月份名称的全称
%c - 首选的日期和时间表示法
%C - 表示世纪的数字(年份除以 100,范围从 00 到 99)
%d - 一个月中的第几天(01 到 31)
%D - 时间格式,与 %m/%d/%y 表示法相同
%e - 一个月中的第几天(1 到 31)
%g - 与 %G 表示法类似,但不带世纪
%G - 与 ISO 星期数对应的 4 位数年份(见 %V)
%h - 与 %b 表示法相同
%H - 小时,使用 24 小时制(00 到 23)
%I - 小时,使用 12 小时制(01 到 12)
%j - 一年中的第几天(001 到 366)
%m - 月份(01 到 12)
%M - 分
%n - 换行符
%p - 与给定的时间值相对应的 am 或 pm
%r - a.m. 和 p.m. 的时间标记法
%R - 24 小时制的时间标记法
%S - 秒
%t - tab 制表符
%T - 当前时间,与 %H:%M:%S 表示法相同
%u - 星期几的数字表示(1 到 7),Monday[星期一] = 1。警告:在 Sun Solaris 系统中,Sunday[星期日] = 1
%U - 当年包含的周数,从第一个星期日开始,作为第一周的第一天
%V - 当年包含的 ISO 8601 格式下的周数(01 到 53),week 1 表示当年的第一周,至少要有四天,且以星期一作为周的第一天
%W - 当年包含的周数,从第一个星期一开始,作为第一周的第一天
%w - 以十进制数形式表示一周中的某天,Sunday[星期日] = 0
%x - 首选的日期表示法,不带时间
%X - 首选的时间表示法,不带日期
%y - 不包含表示世纪的数字的年份表示(范围从 00 到 99)
%Y - 包含表示世纪的数字的年份表示
%Z 或 %z - 时区名称或简写
%% - 输出一个 % 字符strptime(date,format) 解析由 strftime() 生成的时间/日期。
参数:date 必需。要解析的字符串(例如:由 strftime() 返回的)。
format:同上timezone_abbreviations_list() 返回包含夏令时、偏移量和时区名称的关联数组。(没有参数)
timezone_identifiers_list(what,country) 返回带有所有时区标识符的索引数组。
参数:what
可选。规定 DateTimeZone 类常量
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 可选。规定两个字母的 ISO 3166-1 兼容的国家代码。timezone_location_get(object ) 返回指定时区的位置信息。
参数:object 必需。规定由 timezone_open() 返回的 DateTimeZone 对象。timezone_name_from_abbr(abbr,gmtoffset,isdst) 根据时区缩略语返回时区名称。
参数:abbr 必需。规定时区缩略语。
gmtoffset 可选。规定相对于 GMT 的以秒为单位的偏移量。
默认为 -1,表示返回第一个被找到的匹配缩略语的时区。否则搜索精确的偏移量。
如果没有找到,则返回任意偏移量的第一个时区。
isdst
可选。规定夏令时指示器。
-1 = 默认。搜索时是否考虑时区的夏令时
1 = 表示 gmtoffset 是受夏令时影响的一个偏移量
0 = 表示 gmtoffset 是不受夏令时影响的一个偏移量timezone_name_get(object) 返回时区的名称。
参数:object 必需。规定 DateTimeZone 对象。timezone_offset_get(object,datetime) 返回相对于 GMT 的时区偏移。
参数:object 必需。规定由 timezone_open() 返回的 DateTimeZone 对象。
datetime 必需。规定需要计算偏移的日期/时间。timezone_open(timezone) 创建新的 DateTimeZone 对象。
timezone_transitions_get() 返回时区的所有转换。
timezone_version_get() 返回时区数据库的版本。(没有参数)