<返回更多

PHP时间函数总结

2021-08-31    七七小影视
加入收藏

1、checkdate()验证格利高里日期即:日期是否存在。

checkdate(month,day,year);

month必需。一个从 1 到 12 的数字,规定月。

day必需。一个从 1 到 31 的数字,规定日。

year必需。一个从 1 到 32767 的数字,规定年。

返回值:如果日期是有效的则返回 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));
?>
  
  输出结果:
			bool(false)
			bool(false)
			bool(true)

2、date_add()添加日、月、年、时、分和秒到一个日期。

date_add(object,interval);

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

interval必需。规定 DateInterval 对象。

返回值:如果成功则返回 DateTime 对象,如果失败则返回 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");
?>
  结果:2013-04-24

3、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 的时区。默认为当前时区。

返回值:如果成功则返回 DateTime 对象,如果失败则返回 FALSE。

PHP 版本:5.3+

<?php
$date=date_create_from_format("j-M-Y","15-Mar-2013");
?>
  

4、date_create()返回一个新的 DateTime 对象。

date_create(time,timezone);

time可选。规定一个日期/时间字符串。NULL 表示当前的日期/时间。

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

返回值:如果成功则返回一个新的 DateTime 对象,如果失败则返回 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()设置一个新的日期。

date_date_set(object,year,month,day);

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

year必需。规定日期中的年。

month必需。规定日期中的月。

day必需。规定日期中的日。

返回值:如果成功则返回一个新的 DateTime 对象,如果失败则返回 FALSE。

PHP 版本:5.2+,从 PHP 5.3+ 开始,如果成功,返回值则从 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()返回默认时区,被所有的 Date/Time 函数使用。

date_default_timezone_get();

返回值:以字符串返回时区。

PHP 版本:5.1+,从 PHP 5.4+ 开始,时区不再从操作系统获取信息,TZ 变量不再被使用。

<?php
echo date_default_timezone_get();
?>
  Asia/Shanghai

7、date_default_timezone_set()设置默认时区,被所有的 Date/Time 函数使用。

date_default_timezone_set(timezone);

timezone必需。规定要使用的时区,比如 "UTC" 或 "Europe/Paris"。合法时区的列表:
http://www.php.NET/manual/en/timezones.php

返回值:如果 timezone 不合法则返回 FALSE,否则返回 TRUE。

PHP 版本:5.1+,从 PHP 5.1.2+ 开始,该函数开始验证 timezone 参数。从 PHP 5.3+ 开始,抛出 E_WARNING 而不是 E_STRICT。

<?php
date_default_timezone_set("Asia/Shanghai");
echo date_default_timezone_get();
?>
  Asia/Shanghai

8、date_diff()返回两个日期间的差值。

date_diff(datetime1,datetime2,absolute);

datetime1必需。规定一个 DateTime 对象。

datetime2必需。规定一个 DateTime 对象。

absolute可选。规定一个布尔值。TRUE 表示间隔/差值必须是正的。默认是 FALSE。

返回值:如果成功则返回一个 DateInterval 对象,表示两个日期间的差值。如果失败则返回 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()返回根据指定格式进行格式化的日期。

date_format(object,format);

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

format必需。规定日期格式。

返回值:返回格式化的日期字符串。如果失败则返回 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()返回日期字符串中的警告/错误。

date_get_last_errors();

返回值:返回一个包含有关错误/警告信息的数组。

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()从字符串的相关部分建立一个 DateInterval。

date_interval_create_from_date_string ( string $time )

$time必需。与相关部分的日期。 具体来说,用于strtotime()和DateTime的解析器支持的相对格式将用于构造DateInterval。

返回值:返回一个新的DateInterval实例。

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()格式化时间间隔。

DateInterval::format(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 - 当负数时为符号 "-",当正数时为空

注意:每个格式字符串必须带一个 % 符作为前缀!

返回值:返回格式化的时间间隔。

PHP 版本:5.3+

<?php
$date1=date_create("2013-01-01");
$date2=date_create("2013-02-10");
$diff=date_diff($date1,$date2);
// %a 输出两个日期间隔的总天数
echo $diff->format("日期间隔的总天数为: %a 天。");
?>
日期间隔的总天数为: 40 天。

13、date_isodate_set()设置 ISO 日期。

date_isodate_set(object,year,week,day);

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

year必需。规定日期中的年。

week必需。规定日期中的周。

day可选。规定离一周中第一天的偏移量。默认为 1。

返回值:如果成功则返回一个 DateTime 对象,如果失败则返回 FALSE。

PHP 版本:5.2+,PHP 5.3.0:返回值从 NULL 改为 DateTime。

设置 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()修改时间戳。

date_modify(object,modify);

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

modify必需。规定一个日期/时间字符串。

返回值:如果成功则返回一个 DateTime 对象。如果失败则返回 FALSE。

PHP 版本:5.2+,PHP 5.3.0:返回值从 NULL 改为 DateTime。

修改时间戳。增加 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()返回时区偏移。

date_offset_get(object);

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

返回值:如果成功则返回相对于 UTC 的以秒计的时区,如果失败则返回 FALSE。

PHP 版本:5.2+

返回奥斯陆(在欧洲挪威)冬天和夏天相对于 UTC 的以秒计的时区偏移量:

<?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()根据指定的格式返回一个带有指定日期的详细信息的关联数组。

date_parse_from_format(format,date);

format必需。规定格式(格式由 date_create_from_format() 接受)。

date必需。一个指定日期的字符串。

返回值:如果成功则返回包含指定日期信息的关联数组。

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()返回一个带有指定日期的详细信息的关联数组。

date_parse(date);

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

返回值:如果成功则返回包含被解析日期信息的关联数组,如果失败则返回 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()从指定日期减去日、月、年、时、分和秒。

date_sub(object,interval);

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

interval必需。规定一个 DateInterval 对象。

返回值:如果成功则返回 DateTime 对象,如果失败则返回 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()返回一个包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。

date_sun_info(timestamp,latitude,longitude);

timestamp必需。规定时间戳。

latitude必需。规定纬度。

longitude必需。规定经度。

返回值:如果成功则返回一个数组,如果失败则返回 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()返回指定日期与地点的日出时间。

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 与本地时间的差值。单位是小时。

返回值:如果成功,则以指定的 format 返回日出时间。如果失败则返回 FALSE。

PHP 版本:5+,从 PHP 5.1.0 开始,该函数报 E_STRICT 和 E_NOTICE 时区错误。

<?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()返回指定日期与地点的日落时间。

date_sunset(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.sunset_zenith。

gmtoffset可选。规定 GMT 与本地时间的差值。单位是小时。

返回值:如果成功,则以指定的 format 返回日落时间。如果失败则返回 FALSE。

PHP 版本:5+,从 PHP 5.1.0 开始,该函数报 E_STRICT 和 E_NOTICE 时区错误。

<?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()设置时间。

date_time_set(object,hour,minute,second);

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

hour必需。规定时间中的小时。

minute必需。规定时间中的分。

second可选。规定时间中的秒。默认为 0。

返回值:如果成功则返回 DateTime 对象。如果失败则返回 FALSE。

PHP 版本:5.2+,PHP 5.3.0:返回值从 NULL 变为 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 时间戳。

date_timestamp_get(object);

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

返回值:返回代表日期的 Unix 时间戳。

PHP 版本:5.3+

<?php
$date=date_create();
echo date_timestamp_get($date);
?>
  1630315712

24、date_timestamp_set()设置基于 Unix 时间戳的日期和时间。

date_timestamp_set(object,unixtimestamp);

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

unixtimestamp必需。规定代表日期的 Unix 时间戳。

返回值:返回指定格式的 DateTime 对象。如果失败则返回 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 对象的时区。

date_timezone_get(object);

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

返回值:如果成功则返回 DateTimeZone 对象,如果失败则返回 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()设置 DateTime 对象的时区。

date_timezone_set(object,timezone);

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

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

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

返回值:返回指定格式的 DateTime 对象。如果失败则返回 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()格式化本地日期和时间。

date(format,timestamp);

返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。

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())。

返回值:如果成功则返回格式化的日期字符串,如果失败则报 E_WARNING 错并返回 FALSE。

PHP 版本:4+,PHP 5.1.0:新增 E_STRICT 和 E_NOTICE 时区错误。有效范围的时间戳是从 1901 年 12 月 13 日 20:45:54 GMT 星期五 到 2038 年 1 月 19 日 03:14:07 GMT 星期二。5.1.0 之前的版本,在某些系统上(例如 windows)时间戳被限制在从 01-01-1970 到 19-01-2038。PHP 5.1.1:新增标准日期/时间格式常量,用于指定 format 参数。

<?php
// 设置时区
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;
?>
输出如下所示:

2018-01-31 22:09:35
2018 年 01 月 31 日 22 点 09 分 35 秒
2018-01-18 08:08:08

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

getdate(timestamp);

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

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

[seconds] - 秒

[minutes] - 分

[hours] - 小时

[mday] - 一个月中的第几天

[wday] - 一周中的某天

[mon] - 月

[year] - 年

[yday] - 一年中的某天

[weekday] - 星期几的名称

[month] - 月份的名称

[0] - 自 Unix 纪元以来经过的秒数

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()返回当前时间。

gettimeofday(return_float);

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

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

[sec] - Unix 纪元以来的秒

[usec] - 微秒

[minuteswest] - 格林尼治以西的分

[dsttime] - 夏令时修正类型

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

PHP 版本:4+,PHP 5.1.0:新增了return_float 参数。

<?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 日期和时间。

gmdate(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 时间戳。默认是当前的本地时间(time())。

返回值:如果成功则返回格式化的日期字符串,如果失败则报 E_WARNING 错并返回 FALSE。

PHP 版本:4+,PHP 5.1.0:有效范围的时间戳是从 1901 年 12 月 13 日 20:45:54 GMT 星期五 到 2038 年 1 月 19 日 03:14:07 GMT 星期二。5.1.0 之前的版本,在某些系统上(例如 Windows)时间戳被限制在从 01-01-1970 到 19-01-2038。PHP 5.1.1:新增标准日期/时间格式常量,用于指定 format 参数。


<?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 时间戳。

gmmktime(hour,minute,second,month,day,year,is_dst);

hour可选。规定小时。

minute可选。规定分。

second可选。规定秒。

month可选。规定月。

day可选。规定天。

year可选。规定年。

is_dst可选。参数总是代表 GMT 日期,所以 is_dst 不影响结果。 注意:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。

返回值:返回一个整数 Unix 时间戳。

PHP 版本:4+,PHP 5.1.0:is_dst 参数被废弃。

<?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()根据区域设置格式化 GMT/UTC 日期和时间。

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

%% - 输出一个 % 字符

timestamp可选。规定需要格式化的日期/时间的 Unix 时间戳。默认为当前时间(time())。

返回值:返回根据 format 使用给定的 timestamp 格式化的字符串。月份和星期几的名称和其他语言相关的字符串遵守 setlocale() 中的当前区域设置。

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()格式化本地时间/日期为整数。

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())。

返回值:返回根据指定的 format 使用给定的 timestamp 格式化的整数。

PHP 版本:5+,PHP 5.1.0:增加 E_STRICT 和 E_NOTICE 时区错误

<?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()返回本地时间。

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] - 夏令时当前是否生效

返回值:返回包含 Unix 时间戳组件的数组。

PHP 版本:4+,PHP 5.1.0:增加 E_STRICT 和 E_NOTICE 时区错误。

<?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()返回当前 Unix 时间戳的微秒数。

microtime(get_as_float);

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

返回值:默认返回字符串 "microsec sec" ,其中 sec 为自 Unix 纪元(0:00:00 January 1, 1970 GMT)起的秒数,microsec 为微秒部分。如果 get_as_float 参数设置为 TRUE,则返回一个浮点数,表示自 Unix 纪元起精确到微秒的以秒为单位的当前时间。

PHP 版本:4+,PHP 5.0.0:新增 get_as_float 参数。

<?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()返回一个日期的 Unix 时间戳。

mktime(hour,minute,second,month,day,year,is_dst);

hour可选。规定小时。

minute可选。规定分。

second可选。规定秒。

month可选。规定月。

day可选。规定天。

year可选。规定年。

is_dst可选。如果时间在夏令时期间,则设置为 1,否则设置为 0,若未知则设置为 -1(默认)。如果未知,PHP 会试图找到自己(可能产生意外的结果)。 注意:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。

返回值:返回一个整数 Unix 时间戳,如果错误则返回 FALSE。

PHP 版本:4+,PHP 5.3.0:如果使用 is_dst 参数,则抛出 E_DEPRECATED。PHP 5.1.0:is_dst 参数被废弃。如果 mktime() 被调用时不带参数,抛出 E_STRICT 通知。请使用 time() 函数代替。


<?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()根据区域设置格式化本地时间/日期。

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

%% - 输出一个 % 字符

timestamp可选。规定需要格式化的日期/时间的 Unix 时间戳。默认为当前时间(time())。

返回值:返回根据 format 使用给定的 timestamp 格式化的字符串。月份和星期几的名称和其他语言相关的字符串遵守 setlocale() 中的当前区域设置。

PHP 版本:4+,PHP 5.1.0:增加 E_STRICT 和 E_NOTICE 时区错误。

<?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() 生成的时间/日期。

strptime(date,format);

date必需。要解析的字符串(例如:由 strftime() 返回的)。

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

%% - 输出一个 % 字符

返回值:如果成功该函数返回一个带有解析日期的数组。如果失败则返回 FALSE。

返回数组的键名含义如下所示:

[tm_sec] - 当前分钟内的秒数(0-61)

[tm_min] - 当前小时内的分钟数(0-59)

[tm_hour] - 午夜起的小时数(0-23)

[tm_mday] - 月份中的第几天(1-31)

[tm_mon] - 自一月起过了几个月(0-11)

[tm_year] - 自 1900 年起过了几年

[tm_wday] - 自星期天起过了几天(0-6)

[tm_yday] - 本年自 1 月 1 日起过了多少天(0-365)

[unparsed] - 日期中未能通过指定的 format 识别的部分

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()将任何英文文本的日期或时间描述解析为 Unix 时间戳。

int strtotime ( string $time [, int $now = time() ] )

time必需。规定日期/时间字符串。

now可选。规定用来计算返回值的时间戳。如果省略该参数,则使用当前时间。

返回值:成功则返回时间戳,失败则返回 FALSE。

PHP 版本:4+,PHP5.3.0:现在相对时间格式,比如这一周、前一周、上一周、下一周,规定一周从星期一到星期日,而不是使用相对于当前日期/时间的前后 7 天。

PHP 5.3.0: 现在 24:00 是有效的格式。

PHP 5.2.7:在这之前的版本中,如果请求一个月中某个给定日期且该日期刚好是该月的第一天,则会错误地把增加一个星期到返回的时间戳中,这点现在已经得到更正。

PHP 5.1.0:如果失败则返回 FALSE(在这之前的版本则返回 -1),并增加了 E_STRICT 和 E_NOTICE 时区错误。

PHP 5.0.2:现在正确计算 "now" 和其他相对时间是以当前时间为准,而不是以今天午夜的时间为准。

PHP 5.0.0:允许微秒(但微秒数通常被忽略)。

<?php

date_default_timezone_set("PRC");
$time = strtotime("2018-01-18 08:08:08");  // 将指定日期转成时间戳 
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;
?>
输出结果:
1516234088
1517408272
1517408272
968515200
1517494672
1518013072
1518200274
1517414400
1517155200

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

time();

返回值:返回一个包含当前时间的 Unix 时间戳的整数。

PHP 版本:4+

<?php
$t=time();
echo($t . "<br>");
echo(date("Y-m-d",$t));
?>
  1630317436
2021-08-30

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

timezone_abbreviations_list();

返回值:成功则返回一个关联数组,失败则返回 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()返回带有所有时区标识符的数值数组。

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 兼容的国家代码。

返回值:成功则返回一个数值数组,失败则返回 FALSE。

PHP 版本:5.2+,PHP 5.3:新增可选的 what 和 country 参数。

<?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()返回指定时区的位置信息。

timezone_location_get(object);

object必需。规定一个由 timezone_open() 返回的 DateTimeZone 对象。

返回值:返回一个包含时区的位置信息的数组。

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()根据时区缩略语返回时区名称。

timezone_name_from_abbr(abbr,gmtoffset,isdst);

abbr必需。规定时区缩略语。

gmtoffset可选。规定相对于 GMT 的以秒为单位的偏移量。默认为 -1,表示返回第一个被找到的匹配缩略语的时区。否则搜索精确的偏移量。如果没有找到,则返回任意偏移量的第一个时区。

isdst可选。规定夏令时指示器。

-1 = 默认。搜索时是否考虑时区的夏令时

1 = 表示 gmtoffset 是受夏令时影响的一个偏移量

0 = 表示 gmtoffset 是不受夏令时影响的一个偏移量

返回值:成功则返回时区名称,失败则返回 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()返回时区的名称。

timezone_name_get(object);

object必需。规定一个 DateTimeZone 对象。

返回值:从时区列表中返回时区的名称。

PHP 版本:5.2+

<?php
$tz=timezone_open("Europe/Paris");
echo timezone_name_get($tz);
?>
  Europe/Paris

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

timezone_offset_get(object,datetime);

object必需。规定一个由 timezone_open() 返回的 DateTimeZone 对象。

datetime必需。规定需要计算偏移的日期/时间。

返回值:成功则返回以秒为单位的时区偏移,失败则返回 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()创建一个新的 DateTimeZone 对象。

timezone_open(timezone);

timezone必需。规定一个时区。

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

返回值:成功则返回 DateTimeZone 对象,失败则返回 FALSE。

PHP 版本:5.2+

<?php
$tz=timezone_open("Europe/Paris");
echo timezone_name_get($tz);
?>
Europe/Paris

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

timezone_transitions_get(obj)

obj -DateTimeZone对象

返回值:timezone_transitions_get()函数返回包含关联数组的数字索引数组,该数组在成功时会发生所有转换,而在失败时会发生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()返回时区数据库的版本。

timezone_version_get();

返回值:以字符串形式返回时区数据库的版本。

PHP 版本:5.3+

<?php
echo timezone_version_get();
?>
  2012.2
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>