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

如何使用PHP中的时间函数

发布时间:2023-06-24 15:31:56

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