PHP时间和日期函数的应用
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时间和日期函数的常用应用,掌握时间和日期处理的基本函数能够使我们更加灵活、快速地处理时间日期相关的内容。
