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

PHP时间和日期函数的应用

发布时间:2023-06-22 22:35:08

PHP语言提供了很多的时间和日期函数,我们可以利用这些函数对时间和日期进行处理。这些函数包括时间戳函数、格式化时间和日期函数、日期比较函数、日期计算函数和时区设置函数等等。下面我们来详细介绍一下这些常用的函数及其应用。

一、时间戳函数

PHP把时间表示为Unix时间戳,Unix时间戳是从1970年1月1日00:00:00 UTC起至现在的总秒数。我们可以利用时间戳函数对时间进行处理。

1、time() 函数

time()函数返回当前的Unix时间戳,即当前时间距离1970年1月1日00:00:00 UTC的秒数。

2、strtotime() 函数

strtotime()函数将日期时间字符串解析为Unix时间戳。如strtotime(‘now’)可以得到当前时间的Unix时间戳。

二、格式化时间和日期函数

我们经常需要将时间或日期按我们需要的格式进行输出,这时我们可以利用格式化时间和日期函数。

1、date() 函数

date()函数用于将时间戳格式化为日期字符串。它有两个参数, 个参数指定日期格式,第二个参数可以指定时间戳,如果没有指定则默认为当前时间。

例如:date("Y-m-d H:i:s", time())输出的日期格式为"年-月-日 时:分:秒",指定时间戳为当前时间。

2、strftime() 函数

strftime()函数可以将时间戳格式化为本地化字符串, 个参数指定日期格式,第二个参数指定时间戳。

例如:strftime("%Y-%m-%d %H:%M:%S", time())函数可以输出类似"2019-03-22 17:00:00"的日期字符串。

三、日期比较函数

有时我们需要比较两个日期的先后顺序,这时我们可以利用日期比较函数。

1、strtotime() 函数

strtotime()函数可以将日期字符串转换为时间戳。如:strtotime("now")返回当前时间的时间戳。

2、date_diff() 函数

date_diff()函数用于计算两个日期之间的差值,它接收的参数是两个DateTime对象,返回的是DateInterval对象。

例如:

$now_time = new DateTime("now");

$some_time = new DateTime("2019-03-22 12:00:00");

$diff_time = date_diff($now_time, $some_time);

echo $diff_time->format('%R%a days');

输出的结果是"3 days",表示现在距离2019-03-22 12:00:00有3天的时间差。

四、日期计算函数

有时我们需要对日期进行加、减运算,这时我们可以使用日期计算函数。

1、strtotime() 函数

strtotime()函数可以将偏移量添加到当前时间,返回更新后的时间戳。

例如:

echo date("Y-m-d H:i:s", strtotime("+1 year"));

输出结果为一年后的时间,例如"2020-03-22 17:00:00"。

2、DateTime::modify() 函数

DateTime::modify()函数可以在一个DateTime对象上添加或减去一个时间间隔。

例如:

$now_time = new DateTime("now");

$now_time->modify("+1 day");

echo $now_time->format("Y-m-d H:i:s");

输出结果是明天的时间,例如"2019-03-23 17:00:00"。

五、时区设置函数

时区是指地球上不同地区的本地时间差异,不同时区的时间有着明显的差异,因此在操作时间时需要考虑时区影响。

1、date_default_timezone_set() 函数

date_default_timezone_set()函数用于设置脚本中所有日期和时间相关函数用的默认时区,它接收一个参数是时区名称,例如:date_default_timezone_set("Asia/Shanghai")。

2、DateTimeZone() 函数

DateTimeZone()函数用于创建一个DateTimeZone对象,接收的参数是时区名称,例如:$timezone = new DateTimeZone("Asia/Shanghai")。

3、DateTime::setTimezone() 函数

DateTime::setTimezone()函数用于设置DateTime对象所在的时区,它接收一个DateTimeZone对象,例如:

$now_time = new DateTime("now");

$china_time = clone $now_time;

$timezone = new DateTimeZone("Asia/Shanghai");

$china_time->setTimezone($timezone);

echo $now_time->format("Y-m-d H:i:s") . "

" . $china_time->format("Y-m-d H:i:s");

输出结果分别是当前时间和中国时间。

总结:以上是PHP时间和日期函数的常用应用,掌握时间和日期处理的基本函数能够使我们更加灵活、快速地处理时间日期相关的内容。