处理时间的高效PHP函数:strtotime和date使用详解
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函数,实现相应的功能。
