PHP 第五周函数学习记录

checkdate()

作用

函数用于验证格利高里日期。

用法

checkdate(month,day,year);
month    必需。一个从 112 的数字,规定月。
day        必需。一个从 131 的数字,规定日。
year    必需。一个从 132767 的数字,规定年。

测试案例

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)

date_add()

作用

函数添加日、月、年、时、分和秒到一个日期。

用法

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

测试案例

$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

date_create_from_format()

作用

函数返回一个根据指定格式进行格式化的新的 DateTime 对象。

用法

date_create_from_format(format,time,timezone);

参数    描述
format    必需。规定要使用的格式。
time    必需。规定一个日期/时间字符串。NULL 表示当前的日期/时间。
timezone    可选。规定 time 的时区。默认为当前时区。

测试案例

$date=date_create_from_format("j-M-Y","15-Mar-2013");
echo date_format($date,"Y/m/d");

结果

2013/03/15

date_create()

作用

函数返回一个新的 DateTime 对象。

用法

date_create(time,timezone);
time    可选。规定一个日期/时间字符串。NULL 表示当前的日期/时间。
timezone    可选。规定 time 的时区。默认是当前时区。

测试案例

$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d");

结果

2013/03/15

date_date_set()

作用

函数设置一个新的日期。

用法

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

测试案例

$date=date_create();
date_date_set($date,2020,10,30);
echo date_format($date,"Y/m/d");

结果

2020/10/30

date_default_timezone_get()

作用

函数返回脚本中所有日期/时间函数使用的默认时区。

用法

date_default_timezone_get();

测试案例

echo date_default_timezone_get();

结果

Asia/Chongqing

date_default_timezone_set()

作用

函数设置脚本中所有日期/时间函数使用的默认时区

用法

date_default_timezone_set(timezone);

测试案例

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

结果

Asia/Shanghai

date_diff()

作用

函数返回两个 DateTime 对象间的差值

用法

date_diff(datetime1,datetime2,absolute);

测试案例

$date1=date_create("2013-03-15");
$date2=date_create("2013-12-12");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");

结果

+272 days

date_format()

作用

函数返回一个根据指定格式进行格式化的日期。

用法

date_format(object,format);

测试案例

$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");

结果

2013/03/15 00:00:00

date_get_last_errors()

作用

函数返回解析日期字符串时找到的警告/错误。

用法

date_get_last_errors();

测试案例

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

date_interval_format()

作用

函数是 DateInterval::format() 的别名 函数用于格式化时间间隔。

用法

DateInterval::format(format);

测试案例

$date1=date_create("2013-01-01");
$date2=date_create("2013-02-10");
$diff=date_diff($date1,$date2);

// %a 输出两个日期间隔的总天数
echo $diff->format("日期间隔的总天数为: %a 天。");

结果

日期间隔的总天数为: 40 天。

date_isodate_set()

作用

date_isodate_set() 函数根据 ISO 8601 标准设置日期,使用周和天的偏移量(而不是使用一个规定的日期)。

用法

date_isodate_set(object,year,week,day);

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

测试案例

$date=date_create();

date_isodate_set($date,2013,5);
echo date_format($date,"Y-m-d") . "<br>";

date_isodate_set($date,2013,5,2);
echo date_format($date,"Y-m-d");

结果

2013-01-28
2013-01-29

date_modify()

作用

函数修改时间戳。

用法

date_modify(object,modify);

测试案例

$date=date_create("2013-05-01");
date_modify($date,"+15 days");
echo date_format($date,"Y-m-d");

结果

2013-05-16

date_offset_get()

作用

函数返回时区偏移。

用法

date_offset_get(object);

测试案例

$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.

date_parse_from_format()

作用

函数根据指定的格式返回一个包含指定日期信息的关联数组。

用法

date_parse_from_format(format,date);

测试案例

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

date_parse()

作用

函数返回一个包含指定日的详细信息的关联数组。

用法

date_parse(date);

测试案例

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

date_sub()

作用

函数从指定日期减去日、月、年、时、分和秒。

用法

date_sub(object,interval);
object    必需。规定一个由 date_create() 返回的 DateTime 对象。
interval    必需。规定一个 DateInterval 对象。

测试案例

$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

date_sun_info()

作用

 函数返回一个包含有关指定日期与地点的日出/日落和黄昏开始/黄昏结束的信息的数组。

用法

date_sun_info(timestamp,latitude,longitude);
timestamp    必需。规定时间戳。
latitude    必需。规定纬度。
longitude    必需。规定经度。

测试案例

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

date_sunrise()

作用

函数返回指定日期与地点的日出时间。

用法

date_sunrise(timestamp,format,latitude,longitude,zenith,gmtoffset);

timestamp    必需。规定要计算日出时间的日期时间戳。
format    可选。规定如何返回结果:
        SUNFUNCS_RET_STRING(以 string 格式返回结果,比如 16:46)(默认)
        SUNFUNCS_RET_DOUBLE(以 float 格式返回结果,比如 16.78243132SUNFUNCS_RET_TIMESTAMP(以 integer 格式(时间戳)返回结果,比如 1095034606)
latitude    可选。规定地点的纬度。默认是指北纬。因此如果要指定南纬,必须传递一个负值。
longitude    可选。规定地点的经度。默认是指东经。因此如果要指定西经,必须传递一个负值。
zenith    可选。默认为 date.sunrise_zenith。
gmtoffset    可选。规定 GMT 与本地时间的差值。单位是小时。

测试案例

//Calculate the sunrise time for Lisbon, Portugal
//Latitude: 38.4 North
//Longitude: 9 West
//Zenith ~= 90
//offset: +1 GMT

echo("<h2>Lisbon, Portugal</h2>");
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));
?>

结果

Lisbon, Portugal
Date: Sat Sep 21 2013
Sunrise time: 07:26
Sunset time: 19:30

date_sunset()

作用

函数返回指定日期与地点的日落时间

用法

date_sunset(timestamp,format,latitude,longitude,zenith,gmtoffset);

测试案例

//Calculate the sunrise time for Lisbon, Portugal
//Latitude: 38.4 North
//Longitude: 9 West
//Zenith ~= 90
//offset: +1 GMT

echo("<h2>Lisbon, Portugal</h2>");
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));
?>

结果

Lisbon, Portugal
Date: Sat Sep 21 2013
Sunrise time: 07:26
Sunset time: 19:30

date_time_set()

作用

函数用于设置时间

用法

date_time_set(object,hour,minute,second);

测试案例

$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

date_timestamp_get()

作用

 函数返回 Unix 时间戳。

用法

date_timestamp_get(object);

测试案例

$date=date_create();
echo date_timestamp_get($date);

结果

1593657268

date_timestamp_set()

作用

函数设置基于 Unix 时间戳的日期和时间

用法

date_timestamp_set(object,unixtimestamp);

测试案例

$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

date_timezone_get()

作用

函数返回给定 DateTime 对象的时区。

用法

date_timezone_get(object);

测试案例

$date=date_create(null,timezone_open("Europe/Paris"));
$tz=date_timezone_get($date);
echo timezone_name_get($tz);

结果

Europe/Paris

date_timezone_set()

作用

函数 DateTime 对象的时区

用法

date_timezone_set(object,timezone);

测试案例

$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

date()

作用

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

用法

date(format,timestamp);

测试案例

// 设置时区
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;

结果

2020-07-03 16:53:03
202007031653032018-01-18 08:08:08

getdate()

作用

 函数返回某个时间戳或者当前本地的日期/时间的日期/时间信息。

用法

getdate(timestamp);

测试案例

print_r(getdate());

结果

Array
(
    [seconds] => 4
    [minutes] => 54
    [hours] => 8
    [mday] => 3
    [wday] => 5
    [mon] => 7
    [year] => 2020
    [yday] => 184
    [weekday] => Friday
    [month] => July
    [0] => 1593766444
)

gettimeofday()

作用

函数返回当前时间。

用法

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

返回值:    默认返回一个关联数组,带有如下数组键名:
[sec] - Unix 纪元以来的秒
[usec] - 微秒
[minuteswest] - 格林尼治以西的分
[dsttime] - 夏令时修正类型
如果 return_float 参数设置为 true,则返回一个浮点数。

测试案例

// Print the array from gettimeofday()
print_r(gettimeofday());

// Print the float from gettimeofday()
echo gettimeofday(true);

结果

Array
(
    [sec] => 1593766542
    [usec] => 208317
    [minuteswest] => 0
    [dsttime] => 0
)
1593766542.2645

gmdate()

作用

 函数格式化 GMT/UTC 日期和时间,并返回格式化的日期字符串

用法

gmdate(format,timestamp);

测试案例

// Prints the day
echo gmdate("l") . "<br>";

// Prints the day, date, month, year, time, AM or PM
echo gmdate("l jS of F Y h:i:s A");

结果

Friday
Friday 3rd 2020f July 2020 08:59:03 AM

gmmktime()

作用

 函数返回 GMT 日期的 UNIX 时间戳。

用法

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

测试案例

// Prints: October 3, 1975 was on a Friday
echo "Oct 3, 1975 was on a ".date("l", gmmktime(0,0,0,10,3,1975));

结果

Oct 3, 1975 was on a Friday

gmstrftime()

作用

函数根据区域设置格式化 GMT/UTC 日期和时间。

用法

gmstrftime(format,timestamp);

测试案例

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

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 - 星期中的第几天(星期天是 0W - ISO-8601 格式年份中的第几个星期,每星期从星期一开始
        y - 年份(12 位数字)
        Y - 年份(4 位数字)
        z - 一年中的第几天
        Z - 以秒为单位的时区偏移量

测试案例

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>";

结果

55
4
12
0
19
0
1
7
30
31
1593821970
6
27
20
2020
185
0

localtime()

作用

函数返回本地时间。

用法

localtime(timestamp,is_assoc);

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

测试案例

print_r(localtime());
echo "<br><br>";
print_r(localtime(time(),true));

结果

Array
(
    [0] => 37
    [1] => 21
    [2] => 0
    [3] => 4
    [4] => 6
    [5] => 120
    [6] => 6
    [7] => 185
    [8] => 0
)
Array
(
    [tm_sec] => 37
    [tm_min] => 21
    [tm_hour] => 0
    [tm_mday] => 4
    [tm_mon] => 6
    [tm_year] => 120
    [tm_wday] => 6
    [tm_yday] => 185
    [tm_isdst] => 0
)

microtime()

作用

函数返回当前 Unix 时间戳的微秒数

用法

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

测试案例

echo(microtime());

结果

0.48485500 1593822517

mktime()

作用

 函数返回一个日期的 UNIX 时间戳

用法

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

测试案例

// Prints: October 3, 1975 was on a Friday
echo "Oct 3, 1975 was on a ".date("l", mktime(0,0,0,10,3,1975));

结果

Oct 3, 1975 was on a Friday

strftime()

作用

函数根据区域设置格式化本地日期和时间

用法

strftime(format,timestamp);

测试案例

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
2020. July 05. Sunday. 09:56:29 CST

strptime()

作用

函数解析由 strftime() 生成的时间/日期。
注意:该函数不能在 Windows 平台下实现!

用法

strptime(date,format);

测试案例

$format="%d/%m/%Y %H:%M:%S";
$strf=strftime($format);
echo("$strf");
print_r(strptime($strf,$format));

结果

05/07/2020 02:00:47
Array
(
    [tm_sec] => 47
    [tm_min] => 0
    [tm_hour] => 2
    [tm_mday] => 5
    [tm_mon] => 6
    [tm_year] => 120
    [tm_wday] => 0
    [tm_yday] => 186
    [unparsed] => 
)

time()

作用

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

用法

time();

测试案例

$t=time();
echo($t . "<br>");
echo(date("Y-m-d",$t));

结果

1593914254
2020-07-05

timezone_abbreviations_list()

作用

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

用法

time();

测试案例

$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
        )

)
参考

《PHP 5 Date/Time 函数 | 菜鸟教程》

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!