使用PHP的strtotime()函数进行时间日期转换
在PHP中,strtotime()函数是一种非常有用的时间日期转换工具。它可以把各种格式的日期和时间字符串转换成 Unix 时间戳,也可以把 Unix 时间戳转换成日期和时间字符串。使用 strtotime() 可以轻松地进行时间的加减、比较和格式化等操作,进而实现时间日期处理的功能。
一、strtotime() 函数的用法
strtotime() 函数的基本用法如下:
int strtotime ( string $time [, int $now = time() ] )
表示把时间字符串 $time 转换成 Unix 时间戳,并返回该时间的 Unix 时间戳(以秒为单位)。$time 可以是任何格式的日期和时间字符串。$now 参数是可选的,表示当前时间的 Unix 时间戳。如果不传入 $now 参数,则默认为当前系统时间。
strtotime() 函数的参数也可以是相对时间和日期字符串,例如:
1. "+1 day":表示明天的日期
2. "-2 weeks":表示两周前的日期
3. "2019-12-31":表示指定日期的时间戳
4. "10:30:00":表示指定时间的时间戳
5. "last Monday":表示上周一的日期
6. "next Sunday 10:00:00":表示下周日的 10:00:00 时间戳
strtotime() 函数支持的日期和时间格式非常多,可以满足各种不同的需求。下面的表格列出了常见的日期和时间格式:
| 格式 | 描述 |
| -------------- | ------------------------ |
| Y-m-d | 年-月-日 |
| H:i:s | 时:分:秒 |
| Y-m-d H:i:s | 年-月-日 时:分:秒 |
| 2019-12-31 | 指定日期的时间戳 |
| 10:30:00 | 指定时间的时间戳 |
| last Monday | 上周一的日期 |
| next Sunday | 下周日的日期 |
| +1 day | 当前时间增加一天 |
| -2 weeks | 当前时间减少两周 |
| next year | 下一年的日期 |
| first day of | 本月第一天的日期 |
| last day of | 本月最后一天的日期 |
| first day of -1 month | 上个月第一天的日期 |
| last day of -1 month | 上个月最后一天的日期 |
二、strtotime() 函数的应用
1. 获取当前时间的时间戳
使用 strtotime() 函数可以获取当前时间的时间戳,示例代码如下:
echo strtotime("now"); // 输出类似:"1607087699"
2. 获取指定日期的时间戳
使用 strtotime() 函数可以获取指定日期的时间戳,示例代码如下:
echo strtotime("2020-12-31"); // 输出类似:"1609372800"
3. 获取指定时间的时间戳
使用 strtotime() 函数可以获取指定时间的时间戳,示例代码如下:
echo strtotime("10:30:00"); // 输出类似:"1607146200"
4. 获取上周一的日期
使用 strtotime() 函数可以获取上周一的日期,示例代码如下:
echo date("Y-m-d", strtotime("last Monday")); // 输出类似:"2020-11-30"
5. 获取下周日的时间戳
使用 strtotime() 函数可以获取下周日的时间戳,示例代码如下:
echo strtotime("next Sunday"); // 输出类似:"1607952000"
6. 获取当前时间增加一天后的时间戳
使用 strtotime() 函数可以获取当前时间增加一天后的时间戳,示例代码如下:
echo strtotime("+1 day"); // 输出类似:"1607176469"
7. 获取当前时间减少两周后的时间戳
使用 strtotime() 函数可以获取当前时间减少两周后的时间戳,示例代码如下:
echo strtotime("-2 weeks"); // 输出类似:"1605454869"
8. 获取下一年的日期
使用 strtotime() 函数可以获取下一年的日期,示例代码如下:
echo date("Y-m-d", strtotime("next year")); // 输出类似:"2021-12-31"
9. 获取本月第一天的日期
使用 strtotime() 函数可以获取本月第一天的日期,示例代码如下:
echo date("Y-m-d", strtotime("first day of")); // 输出类似:"2020-12-01"
10. 获取本月最后一天的日期
使用 strtotime() 函数可以获取本月最后一天的日期,示例代码如下:
echo date("Y-m-d", strtotime("last day of")); // 输出类似:"2020-12-31"
11. 获取上个月第一天的日期
使用 strtotime() 函数可以获取上个月第一天的日期,示例代码如下:
echo date("Y-m-d", strtotime("first day of -1 month")); // 输出类似:"2020-11-01"
12. 获取上个月最后一天的日期
使用 strtotime() 函数可以获取上个月最后一天的日期,示例代码如下:
echo date("Y-m-d", strtotime("last day of -1 month")); // 输出类似:"2020-11-30"
三、小结
使用 PHP 的 strtotime() 函数可以方便地进行时间和日期的转换和计算,支持各种不同格式的时间字符串,使得时间日期处理变得更加简单和便捷。在使用时,需要注意不同的时间格式和参数的不同含义,以免出现不必要的错误。
