欢迎访问宙启技术站
智能推送

PHP时间函数大全:日期、时间格式化详解

发布时间:2023-06-02 13:25:02

PHP中有很多时间函数,可以方便我们对日期、时间进行格式化、转换和计算。本文将为大家介绍PHP中常用的时间函数,包括日期、时间格式化函数、日期计算函数和时间戳函数。

1.日期、时间格式化函数

1.1 date()函数

date()函数用于将时间戳格式化为可读的日期和时间。

语法:string date ( string $format [, int $timestamp = time() ] )

参数:

format:要转换为日期和时间的格式字符串。该参数必选。

timestamp:可选参数,表示要格式化的时间戳。如果不传递该参数,则默认使用当前时间。该参数的格式必须是一个整数。

1.2 strtotime()函数

strtotime()函数用于将日期字符串解析为Unix时间戳。

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

参数:

time:需要转换为时间戳的时间。该参数必选。

now:可选参数,用来设定时间戳的基准时间,默认值为当前时间。该参数的格式必须是一个整数。

示例:

$time = '2021-03-10 10:15:30';

$timestamp = strtotime($time);

echo $timestamp; // 输出:1615365330

1.3 strftime()和gmstrftime()函数

strftime()函数用于将时间戳格式化为本地时间,并可以根据本地环境的不同格式化为不同的格式。而gmstrftime()函数是将时间戳格式化为GMT时间。

语法:string strftime ( string $format [, int $timestamp = time() ] )

参数:

format:要转换为日期和时间的格式字符串。该参数必选。

timestamp:可选参数,表示要格式化的时间戳。如果不传递该参数,则默认使用当前时间。该参数的格式必须是一个整数。

2.日期计算函数

2.1 mktime()函数

mktime()函数用于根据给定的日期和时间创建一个Unix时间戳。

语法:int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

参数:

hour:小时数,为0~23之间的整数。

minute:分钟数,为0~59之间的整数。

second:秒数,为0~59之间的整数。

month:月份,为1~12之间的整数。

day:日期,为1~31之间的整数。

year:年份,为1970年后的整数。

is_dst:可选参数,夏令时。-1表示自动判断,0表示不使用夏令时,1表示使用夏令时。

示例:

$timestamp = mktime(10, 15, 30, 3, 10, 2021);

echo $timestamp; // 输出:1615365330

2.2 strtotime()函数

strtotime()函数前面已经介绍过,在这里不再赘述。

2.3 date_add()和date_sub()函数

date_add()和date_sub()函数用于日期的加减操作。

语法:

DateTimeInterface date_add ( DateTimeInterface $object , DateInterval $interval )

DateTimeInterface date_sub ( DateTimeInterface $object , DateInterval $interval )

参数:

object:DateTimeInterface对象。

interval:DateInterval对象,表示时间间隔。

示例:

$date = new DateTime('2021-03-10');

$date->add(new DateInterval('P1D')); // 加一天

echo $date->format('Y-m-d'); // 输出:2021-03-11

$date = new DateTime('2021-03-10');

$date->sub(new DateInterval('P2D')); // 减两天

echo $date->format('Y-m-d'); // 输出:2021-03-08

3.时间戳函数

3.1 time()函数

time()函数用于获取当前时间的Unix时间戳。

语法:int time ( void )

示例:

$timestamp = time();

echo $timestamp; // 输出:1615365330

3.2 microtime()函数

microtime()函数用于获取当前时间的微秒数。

语法:float microtime ([ bool $get_as_float = FALSE ] )

参数:

get_as_float:可选参数,指定是否返回浮点数。默认值为FALSE。

示例:

$time = microtime(true);

echo $time; // 输出:1615365330.123

3.3 gettimeofday()函数

gettimeofday()函数用于获取当前时间的微秒数和Unix时间戳。

语法:mixed gettimeofday ([ bool $return_float = FALSE ] )

参数:

return_float:可选参数,指定是否返回浮点数。默认值为FALSE。

返回值:如果return_float参数为TRUE,返回值为浮点数。否则返回值为数组,包含sec和usec两个键名。

示例:

$time = gettimeofday();

print_r($time);

// 输出:

// Array

// (

//     [sec] => 1615365330

//     [usec] => 123456

// )

总结

以上就是PHP中常用的时间函数,包括日期、时间格式化函数、日期计算函数和时间戳函数。使用这些函数可以方便地对日期和时间进行各种操作。