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

处理时间的高效PHP函数:strtotime和date使用详解

发布时间:2023-06-18 21:40:23

strtotime和date是PHP中非常常用的处理时间的函数,它们可以非常方便地对时间进行格式化和计算。本文将对这两个函数进行详细介绍,帮助读者更好地理解和使用它们。

一、strtotime函数

strtotime函数可以将一个人类可读的日期时间字符串转换成一个Unix时间戳,这个时间戳指的是从1970年1月1日00:00:00 UTC(协调世界时)开始到指定时间的秒数。

strtotime函数的语法如下:

strtotime(string $time [, int $now ])

其中,$time为需要转换的字符串,$now为可选参数,表示将字符串转换成时间戳时,使用的当前时间,如果不指定,则默认为time()函数返回的当前时间戳值。

下面是一个例子:

$time = '2021-09-01 10:00:00';

$timestamp = strtotime($time);

echo $timestamp;

// 输出:1630482000

上面的代码将一个字符串转换为Unix时间戳,并输出了其值。

常见的时间字符串格式:

strtotime函数支持很多不同的时间字符串格式,以下是一些常见的格式:

- Y-m-d H:i:s:年-月-日 时:分:秒

- Y/m/d H:i:s:年/月/日 时:分:秒

- d-m-Y H:i:s:日-月-年 时:分:秒

- d/m/Y H:i:s:日/月/年 时:分:秒

- Y-m-d:年-月-日

- Y/m/d:年/月/日

- d-m-Y:日-月-年

- d/m/Y:日/月/年

- +1 day:表示当前时间点的下一天

- next Monday:表示下一个星期一

- last Tuesday:表示上一个星期二

- 2 days ago:表示两天前

除了以上格式,strtotime函数还支持很多其它格式,不同的格式可以实现不同的功能。具体的格式化方式可以参考PHP官方文档:https://www.php.net/manual/zh/datetime.formats.php

二、date函数

date函数是用来格式化日期时间的函数,它使用Unix时间戳作为输入,并将其转换为人类可读的日期时间字符串。date函数的语法如下:

date(string $format [, int $timestamp ])

其中,$format为需要转换为的日期时间字符串格式,$timestamp为可选参数,表示需要转换的Unix时间戳,如果不指定,则默认为time()函数返回的当前时间戳值。

下面是一个例子:

$timestamp = 1630482000;

$date_str = date('Y-m-d H:i:s', $timestamp);

echo $date_str;

// 输出:2021-09-01 10:00:00

上面的代码将一个时间戳转换为人类可读的日期字符串,并输出其值。

常见的日期时间字符串格式:

date函数支持很多不同的日期时间字符串格式,以下是一些常见的格式:

- Y-m-d H:i:s:年-月-日 时:分:秒

- Y/m/d H:i:s:年/月/日 时:分:秒

- d-m-Y H:i:s:日-月-年 时:分:秒

- d/m/Y H:i:s:日/月/年 时:分:秒

- Y-m-d:年-月-日

- Y/m/d:年/月/日

- d-m-Y:日-月-年

- d/m/Y:日/月/年

- l:星期几的全称(如:Sunday)

- D:星期几的缩写(如:Sun)

- F:月份的全称(如:January)

- M:月份的缩写(如:Jan)

- H:24小时制的小时数(00~23)

- h:12小时制的小时数(01~12)

- i:分钟数(00~59)

- s:秒数(00~59)

- A:上午或下午(AM/PM)

- a:上午或下午(am/pm)

除了以上格式,date函数还支持很多其它格式,不同的格式可以组合使用,实现非常复杂的日期时间字符串输出。具体的格式化方式可以参考PHP官方文档:https://www.php.net/manual/zh/function.date.php

三、strtotime和date的组合使用

strtotime函数可以将字符串转换为Unix时间戳,而date函数可以将Unix时间戳转换为人类可读的日期时间字符串。将它们结合使用,可以方便地进行日期时间格式的转换和计算。

下面是一个例子:

$date_str = '2021-09-01 10:00:00';

$timestamp = strtotime($date_str);

$new_timestamp = $timestamp + 3600; // 加1小时

$new_date_str = date('Y-m-d H:i:s', $new_timestamp);

echo $new_date_str;

// 输出:2021-09-01 11:00:00

上面的代码将一个字符串转换为Unix时间戳,并将其加上一个小时,最后再将其转换为人类可读的日期时间字符串。通过组合使用strtotime和date函数,可以方便地进行日期时间的格式化和计算。

总结

strtotime和date是PHP中非常常用的处理时间的函数,它们可以非常方便地对时间进行格式化和计算。strtotime函数可以将一个人类可读的日期时间字符串转换成一个Unix时间戳,而date函数可以将Unix时间戳转换为人类可读的日期时间字符串。通过组合使用这两个函数,可以方便地进行日期时间的转换和计算。在实际开发中,我们需要根据不同的业务需求,选取不同的日期时间字符串格式,并结合使用strtotime和date函数,实现相应的功能。