如何使用PHP中的时间函数
PHP中有许多时间函数,可以帮助我们在处理时间方面更加便捷。下面我们介绍一些常用的时间函数及其使用方法。
一、日期和时间
1. date()
date()函数用于格式化日期和时间,它有两个必须参数:格式和时间戳。其中,格式是一个字符串格式化日期和时间的显示方式,时间戳一般为当前时间的UNIX时间戳。
示例:
echo date("Y-m-d H:i:s");
// 输出:2021-11-01 10:30:00
2. time()
time()函数返回当前时间的UNIX时间戳,可以用于比较时间的先后顺序或计算时间间隔。
示例:
echo time(); // 输出:1635747817
3. strtotime()
strtotime()函数将字符串形式的时间转换成UNIX时间戳,常用于将日期转换成UNIX时间戳。
示例:
echo strtotime("2021-01-01 00:00:00");
// 输出:1609459200
二、日期计算
1. strtotime()
已经在上面提到,这里再举一个相对时间的例子。
示例:
echo strtotime("+1 day");
// 输出:1635834215
2. mktime()
mktime()函数用于返回由参数构成的UNIX时间戳。参数可以是时分秒、月日年等。
示例:
echo mktime(0, 0, 0, 1, 1, 2022); // 输出:1640966400
3. time()和mktime()的比较
如果要计算两个时间之间的时间差,可以使用time()和mktime()函数。其中,time()函数返回当前时间的UNIX时间戳,mktime()函数按照指定的日期和时间返回UNIX时间戳。
示例:
$start_time = mktime(0, 0, 0, 11, 1, 2021); $end_time = time(); $time_diff = $end_time - $start_time; echo $time_diff; // 输出:5730517
三、日期操作
1. strftime()
strftime()函数按照格式化字符串显示时间,不同于date()函数的地方在于输出的字符根据本地设置显示。
示例:
setlocale(LC_TIME, "chs"); // 设置地区信息为中国(简体中文)
echo strftime("%Y年%m月%d日 %H:%M:%S");
// 输出:2021年11月02日 11:41:57
2. date_diff()
date_diff()函数用于计算两个日期之间的差值。参数为两个DateTime对象,返回DateInterval对象。
示例:
$datetime1 = new DateTime('2021-11-01 00:00:00');
$datetime2 = new DateTime('2021-11-05 12:00:00');
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%R%a天%H小时');
// 输出:+4天12小时
四、时区设置
1. date_default_timezone_set()
date_default_timezone_set()函数用于设置时区。
示例:
date_default_timezone_set('Asia/Shanghai');
echo date("Y-m-d H:i:s");
// 输出:2021-11-02 11:50:12
2. timezone_offset_get()
timezone_offset_get()函数用于获取指定日期和时间的时区偏移量。
示例:
$datetime = new DateTime('2021-11-02 12:00:00', new DateTimeZone('Asia/Shanghai'));
echo timezone_offset_get($datetime->getTimezone(), $datetime);
// 输出:28800(即+8小时)
