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

PHP日期与时间函数解析,让你的时间处理更简单

发布时间:2023-06-03 21:32:12

PHP是一种通用的开源脚本语言,特别适用于Web开发。PHP提供了大量的日期和时间处理函数,使得日期和时间处理更加灵活和简单。本文将结合实例,介绍PHP中常用的日期与时间函数及用法,帮助读者更好地进行时间处理。

一. 时间戳

首先,我们需要了解时间戳(Timestamp)——表示自1970年1月1日0时0分0秒以来的秒数。在PHP中,我们可以通过函数time()来获取当前的Unix时间戳,也可以使用其他函数来将Unix时间戳转换为人类友好的格式。例如:

1.获取当前时间戳

echo time();

2.将时间戳转为日期格式

echo date("Y-m-d H:i:s", time()); //2022-07-17 08:25:00

3. 获取指定日期的时间戳

echo strtotime("2020-01-01"); //1577836800

4. 计算两个日期之间的差值

$date1 = strtotime("2022-01-01"); $date2 = strtotime("2022-07-17");

$diff = abs($date1 - $date2);

echo "相差天数:" . floor($diff / (60*60*24)) . "天"; //相差天数:197天

二. date()函数

date()函数可以将时间戳格式化为人类可读的格式。以下是常用日期格式的输出示例:

1.输出当前时间

echo date("Y-m-d H:i:s");

2.输出当前日期

echo date("Y-m-d");

3.输出当前时间某一部分

echo date("H:i:s"); //输出当前时间的时分秒

4.将Unix时间戳转换为人类可读的日期格式

echo date("Y-m-d H:i:s", 1577836800); //2020-01-01

三. strtotime()函数

strtotime()函数可以将英文日期格式转换为Unix时间戳,也可以将日期字符串转换为Unix时间戳。以下是示例:

1.将英文日期格式转换为Unix时间戳

echo strtotime("now");        //当前时间的时间戳

echo strtotime("10 September 2000"); //返回此日期的时间戳

echo strtotime("+1 day");    //明天的时间戳

echo strtotime("+1 week");    //下周的时间戳

echo strtotime("+1 month");    //下个月的时间戳

2.将日期字符串转换为Unix时间戳

echo strtotime("2022-01-01");    //返回2022-01-01的时间戳

echo strtotime("2020-01-01 +1 year");    //返回2021-01-01的时间戳

四. time()函数

time()函数返回当前的Unix时间戳,以秒为单位。以下为示例:

1.获取当前时间戳

echo time();

五. mktime()函数

mktime()函数用于创建一个日期的Unix时间戳,常用于计算时间差。以下是示例:

1.创建指定日期的时间戳

echo mktime(0, 0, 0, 1, 1, 2022); //返回2022-01-01的时间戳

2.计算两个日期之间的时间戳差异

$date1 = mktime(0, 0, 0, 1, 1, 2022); $date2 = mktime(0, 0, 0, 7, 17, 2022);

echo $date2 - $date1; //15724800

六. gmdate()函数

gmdate()函数与date()函数类似,但是不会使用本地时区而是使用GMT时间。以下为示例:

1.输出当前格林威治时间

echo gmdate("Y-m-d H:i:s"); 

2.输出指定格林威治时间

echo gmdate("Y-m-d H:i:s", 1660296204); 

七. getdate()函数

getdate()函数可以将Unix时间戳转换为一个数组,包含了有用的日期信息。以下为示例:

1.获取当前日期的信息

print_r(getdate()); 

2.获取指定日期的信息

print_r(getdate(1577836800)); 

八. strtotime()与时间格式的关系

date()、getdate()、gmdate()这三个函数已经比较常见了,建议熟练掌握。而mktime()和time(),在某些时候也是非常好用的。而strtotime()是PHP中非常有用的时间聚合和差异计算函数。各位可能会被strtotime()的参数搞的晕头转向,下面简单介绍一下常见的时间格式:

1.绝对时间格式(注意有空格)

YYYY-MM-DD HH:MM:SS

如:"2022-07-17 14:27:20"

注意,使用这种格式必须保证时区与服务器时区一致,否则得出的时间不正确。例如:北京时间与格林威治时间之间相差8个小时,因此在北京时间2015-01-01 00:00:00使用strtotime()方法转换会得到1970-01-01 08:00:00这样的结果。

2.相对时间格式

下面列出了常见的相对时间格式:

格式    描述

now    当前日期和时间

+y    年份增加y年

-y    年份减少y年

+m    月份增加m个月

-m    月份减少m个月

+w    星期增加w个星期

-w    星期减少w个星期

+d    天数增加d天

-d    天数减少d天

如:

echo strtotime("+1 year"); //1581798772

echo strtotime("-1 year"); //1528366772

echo strtotime("+1 month"); //1559894772

echo strtotime("-1 month"); //1552302772

3.时间戳格式

在PHP的date()函数中,用printf()函数将第二个参数格式化成Unix时间戳格式,通常格式为"%T"或"%s"。例如:

echo date("Y-m-d H:i:s", strtotime("2015-01-01")); //2015-01-01 00:00:00

以上就是PHP中常用的日期与时间函数的介绍,希望能帮助到读者。在实际开发中,掌握这些函数可以帮助我们更好地处理时间,加快开发效率。