PHP Date

date(format,timestamp) 格式化本地日期和时间。

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 时间

格式化本地日期和时间,并返回已格式化的日期字符串。

echo date("l") . " ";
echo date("l jS \of F Y h:i:s A");
//Thursday   Thursday 7th of September 2017 11:41:34 PM

time()    返回当前时间的 Unix 时间戳。

返回自 Unix 纪元(January 1 1970 00:00:00 GMT)起的当前时间的秒数。

strtotime(time,now)    将任何英文文本的日期或时间描述解析为 Unix 时间戳。

time 必需。规定日期/时间字符串。
now 可选。规定用来计算返回值的时间戳。如果省略该参数,则使用当前时间。

将任何英文文本的日期或时间描述解析为 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 格式或者使用 date_create_from_format() 函数。

strtotime("now");
strtotime("5 September 2016");
strtotime("+5 hours");
strtotime("-1 day");
strtotime("+1 week");
strtotime("+1 week 3 days 7 hours 5 seconds");
strtotime("next Monday");
strtotime("last Sunday");

getdate(timestamp)    返回某个时间戳或者当前本地的日期/时间的日期/时间信息。

timestamp 可选。规定 Unix 时间戳,整数值。默认为当前本地时间(time())。

返回带有与时间戳相关的信息的关联数组:

  • [seconds] - 秒
  • [minutes] - 分
  • [hours] - 小时
  • [mday] - 一个月中的第几天
  • [wday] - 一周中的某天
  • [mon] - 月
  • [year] - 年
  • [yday] - 一年中的某天
  • [weekday] - 星期几的名称
  • [month] - 月份的名称
  • [0] - 自 Unix 纪元以来经过的秒数
print_r(getdate());
//Array ( [seconds] => 2 [minutes] => 14 [hours] => 0 [mday] => 10 [wday] => 0 [mon] => 9 [year] => 2017 [yday] => 252 [weekday] => Sunday [month] => September [0] => 1504973642 )

gettimeofday(return_float)    返回当前时间。

return_float 可选。当设置为 TRUE 时,返回浮点数,而不是数组。默认是 FALSE。

默认返回关联数组,带有如下数组键名:

  • [sec] - Unix 纪元以来的秒
  • [usec] - 微秒
  • [minuteswest] - 格林尼治以西的分
  • [dsttime] - 夏令时修正类型

如果 return_float 参数设置为 true,则返回浮点数。

// 输出 gettimeofday() 返回的数组
print_r(gettimeofday());
echo "<br><br>";
// 输出 gettimeofday() 返回的浮点数
echo gettimeofday(true) . "<br><br>";
// 返回当前时间;然后对输出进行格式化
$mytime=gettimeofday();
echo "$mytime[sec].$mytime[usec]";
//Array ( [sec] => 1504973755 [usec] => 93250 [minuteswest] => -480 [dsttime] => 0 ) 
//1504973755.0933
//1504973755.93250

date_diff(datetime1,datetime2,absolute)    返回两个日期间的差值。

datetime1 必需。规定 DateTime 对象。
datetime2 必需。规定 DateTime 对象。
absolute 可选。规定布尔值。TRUE 表示间隔/差值必须是正的。默认是 FALSE。
$date1=date_create("1984-01-28");
$date2=date_create("1980-10-15");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
//-1200 days

checkdate(month,day,year)    验证格利高里日期。

month 必需。规定月,从 1 到 12 的数字值。
day 必需。规定日,从 1 到 31 的数字值。
year 必需。规定年,从 1 到 32767 的数字值。

用于验证格利高里日期(Gregorian date)。

var_dump(checkdate(12,31,-400));
echo "<br>";
var_dump(checkdate(2,29,2003));
echo "<br>";
var_dump(checkdate(2,29,2004));
// false  false true

date_create(time,timezone)    返回新的 DateTime 对象

time 可选。规定日期/时间字符串。NULL 指示当前的日期/时间。
timezone

可选。规定 time 的时区。默认是当前时区。

date_create_from_format(format,time,timezone)返回根据指定格式进行格式化的新的 DateTime 对象。

ormat

必需。规定要使用的格式。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_interval_create_from_date_string()    从字符串的相关部分建立 DateInterval。

$date=date_create("2016-09-25");
echo date_format($date,"Y/m/d");
//2016/09/25

$date=date_create_from_format("j-M-Y","25-Sep-2016");
echo date_format($date,"Y/m/d");
//2016/09/25

date_format(object,format)    返回根据指定格式进行格式化的日期。

object 必需。规定由 date_create() 返回的 DateTime 对象。
format 必需。规定日期的格式。

date_interval_format(format)    格式化时间间隔。 DateInterval::format() 的别名。

format

必需。规定格式。format 参数字符串可以使用下列的字符:

  • % - Literal %
  • Y - 年,至少 2 个数字,带前导零(例如 03)
  • y - 年(例如 3)
  • M - 月,带前导零(例如 06)
  • m - 月(例如 6)
  • D - 日,带前导零(例如 09)
  • d - 日(例如 9)
  • a - 由 date_diff() 得出的两个日期间隔的总天数
  • H - 小时,带前导零(例如 08、23)
  • h - 小时(例如 8、23)
  • I - 分,带前导零(例如 08、23)
  • i - 分(例如 8、23)
  • S - 秒,带前导零(例如 08、23)
  • s - 秒(例如 8、23)
  • R - 当负数时为符号 "-",当正数时为符号 "+"
  • r - 当负数时为符号 "-",当正数时为空

注释:每个格式字符串必须以 % 符号作为前缀!

date_parse(date)    返回带有关于指定日期的详细信息的关联数组。

date 必需。规定日期(strtotime() 接受的格式)。

date_parse_from_format(format,date)    根据指定的格式返回带有关于指定日期的详细信息的关联数组。

format 必需。规定格式(date_create_from_format() 接受的格式)。
date 必需。指定日期,字符串值。
$date=date_create("2016-09-25");
echo date_format($date,"Y/m/d H:i:s");
//2016/09/25 00:00:00

$date1=date_create("1984-01-28");
$date2=date_create("1980-10-15");
$diff=date_diff($date1,$date2);
// %a 输出总天数
echo $diff->format("总天数:%a 。");
//总天数:1200 。

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] => )

print_r(date_parse_from_format("mmddyyyy","25092016"));
echo "<br><br>";
print_r(date_parse_from_format("j.n.Y H:iP","25.9.2016 14:35+02:00"));
//Array ( [year] => [month] => 9 [day] => 16 [hour] => [minute] => [second] => [fraction] => [warning_count] => 0 [warnings] => Array ( ) [error_count] => 1 [errors] => Array ( [8] => Data missing ) [is_localtime] => ) 
//Array ( [year] => 2016 [month] => 9 [day] => 25 [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_add(object,interval)   添加日、月、年、时、分和秒到日期。

object 必需。规定 date_create() 返回的 DateTime 对象。
interval 必需。规定 DateInterval 对象。

date_sub(object,interval)    从指定日期减去日、月、年、时、分和秒。

object 必需。规定由 date_create() 返回的 DateTime 对象。
interval 必需。规定 DateInterval 对象。

date_modify(object,modify)    修改时间戳。

object 必需。规定由 date_create() 返回的 DateTime 对象。
modify 必需。规定日期/时间字符串。
$date=date_create("1980-10-15");
date_add($date,date_interval_create_from_date_string("100 days"));
echo date_format($date,"Y-m-d");
//1981-01-23

$date=date_create("2016-09-25");
date_modify($date,"+4 days");
echo date_format($date,"Y-m-d");
//2016-09-29

$date=date_create("2016-09-29");
date_sub($date,date_interval_create_from_date_string("4 days"));
echo date_format($date,"Y-m-d");
//2016-09-25

date_date_set(object,year,month,day)    设置新日期。

object 必需。规定由 date_create() 返回的 DateTime 对象。
year 必需。规定日期中的年。
month 必需。规定日期中的月。
day 必需。规定日期中的日。

date_time_set(object,hour,minute,second)    设置时间。

object 必需。规定由 date_create() 返回的 DateTime 对象。
hour 必需。规定时间中的小时。
minute 必需。规定时间中的分。
second 可选。规定时间中的秒。默认为 0。

date_timestamp_set(object,unixtimestamp)    设置基于 Unix 时间戳的日期和时间。

object 必需。规定由 date_create() 返回的 DateTime 对象。本函数修改该对象。
unixtimestamp 必需。规定代表日期的 Unix 时间戳。

date_timestamp_get(object)    返回 Unix 时间戳。

object 必需。规定由 date_create() 返回的 DateTime 对象。

date_timezone_set(object,timezone)    设置 DateTime 对象的时区。

object 必需。规定由 date_create() 返回的 DateTime 对象。本函数修改该对象。
timezone

必需。规定代表所需时区的 DateTimeZone 对象。

提示:查看 PHP 中支持的所有时区列表。

date_timezone_get(object)    返回给定 DateTime 对象的时区。

object 必需。规定由 date_create() 返回的 DateTime 对象。

date_isodate_set(object,year,week,day)       设置 ISO 日期。

object 必需。规定由 date_create() 返回的 DateTime 对象。
year 必需。规定日期中的年。
week 必需。规定日期中的周。
day 可选。规定离一周中第一天的偏移量。默认为 1。

date_offset_get(object)        返回时区偏移。

object 必需。规定由 date_create() 返回的 DateTime 对象。
$date=date_create();
date_date_set($date,2020,10,15);
echo date_format($date,"Y/m/d");
//2020/10/15

$date=date_create();
date_isodate_set($date,2016,5);
echo date_format($date,"Y-m-d");
//2016-02-01

$winter=date_create("2016-10-15",timezone_open("America/New_York"));
$summer=date_create("2016-01-28",timezone_open("America/New_York"));
echo date_offset_get($winter) . " 秒。<br />";
echo date_offset_get($summer) . " 秒。";
//-14400 秒。-18000 秒。

date_default_timezone_get()    返回由所有的 Date/Time 函数使用的默认时区。

date_default_timezone_set(timezone)    设置由所有的 Date/Time 函数使用的默认时区。

timezone

必需。规定要使用的时区,比如 "UTC" 或 "Europe/Paris"。

合法时区的列表: http://www.php.net/manual/zh/timezones.php

date_default_timezone_set("Asia/Shanghai");
echo date_default_timezone_get();
//Asia/Shanghai

echo date_default_timezone_get();
//Asia/Shanghai

date_get_last_errors()    返回日期字符串中的警告/错误。

crate_create("aecubdjpoi%&&/");
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_sun_info(timestamp,latitude,longitude)    返回包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。

timestamp 必需。规定时间戳。
latitude 必需。必需。规定纬度,以度数计。
longitude 必需。必需。规定经度,以度数计。

date_sunrise(timestamp,format,latitude,longitude,zenith,gmtoffset)    返回指定日期与位置的日出时间。

date_sunset(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 与本地时间的差值,以小时计。

gmdate(format,timestamp)    格式化 GMT/UTC 日期和时间。

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)

gmmktime(hour,minute,second,month,day,year,is_dst)    返回 GMT 日期的 UNIX 时间戳。

hour 可选。规定小时。
minute 可选。规定分。
second 可选。规定秒。
month 可选。规定月。
day 可选。规定天。
year 可选。规定年。
is_dst

可选。参数总是代表 GMT 日期,所以 is_dst 不影响结果。

注释:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。

gmstrftime(format,timestamp)    根据区域设置对 GMT/UTC 日期和时间进行格式化。

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 - 时区名称或简写

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 - 以秒为单位的时区偏移量

localtime(timestamp,is_assoc)     返回本地时间。

timestamp 可选。规定 Unix 时间戳。如果未规定 timestamp,则默认为当前的本地时间 time()。
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] - 夏令时当前是否生效

microtime(get_as_float)    返回当前时间的微秒数

get_as_float 可选。当设置为 TRUE 时,规定函数应该返回浮点数,否则返回字符串。默认为 FALSE。

mktime(hour,minute,second,month,day,year,is_dst)    返回日期的 Unix 时间戳。

hour 可选。规定小时。
minute 可选。规定分。
second 可选。规定秒。
month 可选。规定月。
day 可选。规定天。
is_dst

可选。如果时间在夏令时 (DST) 期间,则设置为 1,否则设置为 0,若未知则设置为 -1(默认)。

如果未知,PHP 会自己进行查找(可能产生意外的结果)。

注意:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。

strftime(format,timestamp)    域设置对本地时间/日期进行格式化。

 strptime(date,format)    解析由 strftime() 生成的时间/日期。

date 必需。要解析的字符串(例如:由 strftime() 返回的)。
timestamp 可选。规定代表需要格式化的日期/时间的 Unix 时间戳。默认为当前时间(time())。
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 - 时区名称或简写
  • %% - 输出一个 % 字符

timezone_abbreviations_list()    返回包含夏令时、偏移量和时区名称的关联数组。

timezone_identifiers_list()    返回带有所有时区标识符的索引数组。

timezone_location_get()    返回指定时区的位置信息。

timezone_name_from_abbr()    根据时区缩略语返回时区名称。

timezone_name_get()    返回时区的名称。

timezone_offset_get()    返回相对于 GMT 的时区偏移。

timezone_transitions_get()    返回时区的所有转换。

timezone_version_get()    返回时区数据库的版本。

猜你喜欢

转载自my.oschina.net/u/2518388/blog/1531580