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

PHP时间日期函数大全,轻松应对各种时间转换问题

发布时间:2023-06-25 08:49:08

PHP作为广泛使用的编程语言,提供了丰富的时间和日期函数,用于处理日期、时间和时区的问题。本文将为大家介绍PHP中常用的时间和日期函数,帮助大家轻松应对各种时间转换问题。

1. date()函数

date()函数的作用是将一个时间戳格式化为可读性强的日期和时间,并返回一个格式化后的字符串。

语法:date(format, timestamp)

其中,format参数为必填项,指定用于格式化时间戳的字符串格式;timestamp参数是可选的,默认值为当前服务器时间,可以是时间戳或者日期时间字符串。

常用的日期和时间格式

|格式|描述|

|---|---|

|d|某月的第几天,有前导零,如01-31|

|D|星期几的缩写,如Sun到Sat|

|j|某月的第几天,没有前导零,如1-31|

|l|星期几的完整名称,如Sunday到Saturday|

|m|某月的月份,有前导零,如01-12|

|M|某月的缩写名称,如Jan到Dec|

|n|某月的月份,没有前导零,如1-12|

|Y|四位数的年份,如1999或2020|

|y|两位数的年份,如99或20|

|H|24小时制的小时数,有前导零,如00-23|

|h|12小时制的小时数,有前导零,如01-12|

|i|分钟数,有前导零,如00-59|

|s|秒数,有前导零,如00-59|

|a|上午或下午的标记,小写,如am或pm|

|A|上午或下午的标记,大写,如AM或PM|

|U|Unix时间戳|

示例:

//输出当前日期时间
echo date("Y-m-d H:i:s"); 

//输出当前时间的Unix时间戳
echo date("U"); 

2. time()函数

time()函数返回当前的Unix时间戳,通常与date()函数结合使用,用于获取当前日期和时间,或者计算给定日期和时间与当前日期和时间的差值。

语法:time()

示例:

//获取当前时间戳
$now = time();

//计算一小时后的时间戳
$one_hour_later = time() + 3600;

3. strtotime()函数

strtotime()函数将一个字符串转换为时间戳。该函数通常用于将日期和时间格式的字符串转换为Unix时间戳。

语法:strtotime(time_string, time_now)

其中,time_string参数为必填项,指定要转换的字符串;time_now参数是可选的,默认值为当前服务器时间,可以是时间戳或者日期时间字符串。

示例:

//将日期字符串转换为时间戳
$time_string = "2022-08-12 18:30:00";
$timestamp = strtotime($time_string);

//将相对时间字符串转换为时间戳
$timestamp = strtotime("+1 day");

4. mktime()函数

mktime()函数用于根据给定的时间和日期创建一个时间戳。该函数通常用于计算给定日期和时间与当前日期和时间的差值。

语法:mktime(hour, minute, second, month, day, year)

其中,hour、minute和second是可选的,如果不指定,则默认为0;month、day和year是必填项。

示例:

//计算指定日期的时间戳
$timestamp = mktime(0, 0, 0, 8, 12, 2022);

//计算当前日期的时间戳
$now = time();
$date_today = date("Y-m-d", $now);
$timestamp_today = mktime(0, 0, 0, date("m", $now), date("d", $now), date("Y", $now));

5. date_create()函数

date_create()函数用于创建一个DateTime对象,通常用于处理日期和时间的计算、格式化等操作。

语法:date_create(time_string, timezone)

其中,time_string参数是可选的,默认值为当前服务器时间,可以是时间戳或者日期时间字符串;timezone参数也是可选的,用于指定一个时区,用于格式化日期和时间。

示例:

//创建一个DateTime对象
$date = date_create('2022-08-12 18:30:00', new DateTimeZone('Asia/Shanghai'));

//格式化输出日期和时间
echo date_format($date, 'Y-m-d H:i:s');

6. date_diff()函数

date_diff()函数用于计算两个日期之间的差值,返回一个DateInterval对象,包含两个日期之间的年、月、日、时、分、秒等信息。

语法:date_diff(datetime1, datetime2)

其中,datetime1、datetime2是必填项,指定要计算的两个日期,可以是DateTime对象、时间戳或者日期时间字符串。

示例:

//计算两个日期之间相差的天数
$date1 = date_create('2022-08-12 18:30:00', new DateTimeZone('Asia/Shanghai'));
$date2 = date_create('2022-08-14 16:30:00', new DateTimeZone('Asia/Shanghai'));
$interval = date_diff($date1, $date2);
echo $interval->format('%R%a days'); //输出+1 days

//计算两个日期之间相差的小时数
$timestamp1 = strtotime('2022-08-12 18:30:00');
$timestamp2 = strtotime('2022-08-14 16:30:00');
$interval = ($timestamp2 - $timestamp1) / (60 * 60);
echo $interval; //输出46

以上就是PHP中常用的时间和日期函数,能够帮助大家轻松应对各种时间转换问题。需要注意的是,PHP中的日期和时间函数都是基于服务器本地时间的,如果需要与客户端的时区进行交互,需要进行时区转换。