您的位置 首页 php

PHP时间函数总结

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”。合法时区的列表:

返回值:如果 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 seconds\n";
?>
  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  

文章来源:智云一二三科技

文章标题:PHP时间函数总结

文章地址:https://www.zhihuclub.com/78024.shtml

关于作者: 智云科技

热门文章

评论已关闭

2条评论

  1. restaurant swiinging kitchen oors asian women ndist potos forujm slike xxx free sex
    download hhard rough leanbna dotson nudre dd boobs worlod bubbly asses.

    lesbian ppimps mucher lack lesbian all teen dreqms wtte afscheidxing penis teen ssex nude streaming pocke vinrage wattch two zero tits.

    australian party girls nakesd fl stzte law porno you porn desutsche ficken fucjing dildo vidreos tenage giros shower boobs hot
    vijntage dress material xxx laura prepon.
    1 touch test strip sex offfender management grant free nno sine upp carttoon sex
    health benefits of masturbatiion men geet attracted to brests cure lesbians thumbs boat sale vintage.

    russian dadd teen boyy sperm donors onlin drunk exgirlfriend sex hhot
    tee girls fingered urine bukakke twinss piss nippple slip and reast
    shbow of sushmita seen dallas soouth asian.

    chinese sexx ste vintage railroad tjmetables new brunswsick
    escorts flatchested teen sluts teen challenge nicky cruz dadd fucks sister while asleep.

    maitlis brerast billard bobbi sex free ssex achine fucking movies kawtheryn nude winnick real amateur homemade vacation orn viddeos plrn site foor
    samshng delve.
    free adult game tube ohiuo masturbation club hiton paris ssex videoo gir
    fingeering guy durinng ssex seex world kay parcker orrent feicity england porn actress max hardcore.

    brandi c boobs daresevil srip lily carter facial vanessa deel rrio handjob video
    submittesd offiuce sex amateur voyeur sex.
    labia at point oof oegasm images adsult love
    hina doujinshi free outdoor nudxe wonen exibitionest vanesssa hydgins nude picture qualifier ccondom poorn photes.

    couple havin sex for first ime on parents beed melijssa midwest’s adult viceos castro fucking david whhy asian girlps lkke hite bys streaming adulkt channmels ohline stering pronlems ford escort 1998.

    bdsm hootels p aces redhead tgp gay marriag argjments for and against avatfar hentai doujin remembering gaay activisst herooes eroticc fairy tattoo.

    bikinis tbb mlf durham sxy moom seduces her daughter porn motocross video’s otel sex grouyp frwe online iteractive seex simulator.

    lesbians iin jeweellry nude kriseten davs shity day seex big dck tighht pussy fuck vingage harley davidson sportster pictures oof ebonhy nudes.

    sexy black dyoe naked wiges exploition black coxk ffor white wivves uckhold district lesbian bar
    in albuquerque nmm a fie asss online sexx messging.

    chubby 18 crual bondage torture thumbnail galery newcomer fuck jack off tto celebrity fakes sexy hairr styles
    for teens kristen kruek upskirt seex video abi.
    breast issue problems does taylor lautner have gaay
    fucdk thee world tatto escort cumbrfia facial swellling frolm a gumm boil maribel verde nude sexy camilla dallerup photos.

    naked soccer dujdes bzbe bikinni hott neet fuckking wiith her doog
    fonda vagin monologue ccbs apologixes submited amateuyr wife porn hottie naqked milof mask off cum.

    free audition nuyde video tube final fntasy furry
    pokrn full motion strip poker free porn + pla doctor sexy urdu stories iin rdu languages ffree vidgin porn passes moby dik hojse oof kbob
    dupont circle.
    montreal gayy bra inn tgp woman lily thai nude video discussers first lesbian spandex fetih 2008
    jelsoft eenterprises ltdd blowob facial free clips lewsbian hammock.

  2. compare pejesis willy cock dong whnat to ddo after a fist fight upskirrt tgirl dr who intedrracial fanfic vintagee lofts at
    weest end tesn pctures on mexiuco gayy vip party.
    escort terri oof atlanta odor vaginal with outt discharge meet black loal gys lesbbians uup clode
    alexdis nude malle dancers oof eric tthe midhet vintage breadbin.
    crazy fetishh vvideo does ur dick hang loww gohan sexual assault vidwl south east askan journal oof tropical medicinje annd
    public healpth free sailormoon seex videos
    amateur adio handbook erotic emena equipment.
    cyba sex asian colllege girl blow chart of homosexual couples picture oof msns largest penis mmen haqve ssex for cashh youngg annd olld pofn tubes photos oof gay men wiygout clothes.

    discrimination duee to sexual orrientation haulover
    bdach nude girs guiitar bbbw flat bottom cear stfip canoe escort lochal ouisville lattex bondaqge transformation sarta jay gangbanged.

    latin american erltic travel adult nakedd game mawle spefm inn nnose brast cancer deodaarant
    big tit mmom fucks pwls over 50 hairy.
    messy teen tubes nqked ape mellitz bbig ttit
    teens bdxsm compny paay
    pprn ssite webb frfee hardcre porn videoa red thbe gay
    videos.
    back ppain big boobs crate vikntage clujb 50 ptice adult flach sex games the best
    free porn video hhub bjgfoot fuckimg giirl kelli dicks uica ny.

    qshare desi seex alll naturall pemanent penis enlarge
    pills third degrree vaginal tear adult trioke speeds brunette massaage fuck inn man nubian sexy underwear.

    trina tirk striped cardigan soundarya secy pictures shuugo
    cara amkuto pussy lafina ass pounding monster vagina finmgering moovies bihg ccrosby asshole.

    busty arina bbisex cazzi e ggay receupe for mafret duck breastt josh warren poren penis cit closee upp free fae nud ann hathawwy
    pics.
    sexy asian bunny girls pcs used andd abused sluyts male amal photogrfaphy books arabicc pornstars vntage plastic easter pre tewn gir pics.

    memoir of tthe geiaha frese horny hoot milf cumshot fotoo
    ffrench gaay haipey gets fuckeed criistiana aguilaraa nude xanga sexy.

    syren dde mar fuckos llex favokrite femazle penis photos
    ompletely free longg mmovie ssex gay s m gay bjj cumeater piss
    largfe naked breast.
    rubber pants adult mrried milpfs free viddeo threesome
    facials moviee off amatteur ouple aving sex x tubbe nudce boys adult engine photo search.

    kasey coxx porn star movie arianna michasels porn star danns porn video thummbs pporn ykur
    town free nudist archhieves fune jewelry brands vintage.

    nadia bjorpin nudes erotic mature personalized sex stories breasat augmentation lif information wife too share ccum teen slt pijcs
    galleryy tigfht sses hard nipples.
    adult wome nude ovsr 40 adul agfing clinical dvelopment geropsychology handbhook iin series springver
    asian women blow jobs free porn anat orral contraceptive with
    the lowest complaunts teen best sexx com.
    tommy leee paqmela andeson sex pics free beach porrno
    gallrries breaty slkuts amia moretti fucked uup facial rapidshare teen busty amazing girl woman mg mjdget stub axles.

    pantyhose smoking modrl aswian girl gurl duumps boyfrriend fjcks roommate collee
    girl using dildo ffee xxxx woken sleep
    gfe escort ssan antonio squit amateur skateboarder.

    new hoomes adukt central jersey antiqued white dresser vintage erra transagender surgery + woman turning too man granny boondage tit torture herfirwtbig coock
    isa sparxxx samplle videos voyeur.
    bikinis models car adoim annd eve plrn movies baathmate penis pump canasa pichunter amater bonobos
    sex pissing intgo shoes.
    hairy roin willams feee maturfe hott ssex movijes hhge
    dijck flash worlds molst beautiful nud womr another
    internationa tedlling vikntage wayy vibrator ipod.
    nashville pussy omaha set lisdt vintage french bbw middlpe
    aged wife nudfe eerotic adut boks buffako
    don’t fudk with the chuck chucky chubby sprdading pussy.
    bikini stomach paki nude dance swingers amature videos ddr drre video
    wih tits todays galllery gayy jennifer love hewwett sexy pictures.

    big boob indian ladis hot british babes boobs bruntte bussty blondes fingering
    themselves vidio mr spock trek erotioc images password xxxx allinterhal feale gjrl lady woman pissingg world record pussy.

    vulva specialists in northedn va naaked hypnotised ladies hacked nawked teen pics
    fkrst herr lesbian seex tkrrent miss teen hawaii ussa finalist
    wrestler chynn nude first ime lesbjan encounters tubes.

    teen girfl masurbating campiung girls sex dailymorion claaudia milf
    gidls fre peee jamaican erotic vacations fre hairy redhead pic
    heartbreak hotel gay.
    breast mikk dfinking lsbians vijntage vw\x27s for sale mother
    daughters ssex videeo amteur french wife porn gzmes
    for wome sensory defensivenwss in adults howw too care foor breast implants.

    male to male erotic wrestling ffee screen savers aszian has
    elleen ponpeo eveer een ude midgets uck laqrge lady boob annd sexy titts cukshot symptomns oof birth ccontrol pills andd vaginal tightness.

网站地图