PHP日期时间函数:strtotime函数用法详解
strtotime函数是PHP中用来将字符串转换为Unix时间戳的函数,这个时间戳表示从1970年1月1日起到指定日期(或时间)所经过的秒数。strtotime函数可以解析的日期和时间格式非常广泛,下面是该函数的用法详解。
1. 基本用法:strtotime函数的基本用法非常简单,只需要将待转换的日期(或时间)字符串作为参数传递给该函数即可。比如:
$timestamp = strtotime('2021-01-01');
上述代码将字符串'2021-01-01'转换为Unix时间戳,并将结果赋值给$timestamp变量。
2. 相对时间:strtotime函数还可以解析相对的时间字符串。相对时间可以是以下形式之一:
- 明天:+1 day
- 后天:+2 day
- 后后天:+3 day
- 上个月:-1 month
- 下个月:+1 month
- 上一年:-1 year
- 下一年:+1 year
- 具体时间(24小时制):10:30
- 具体时间(12小时制):10:30am或10:30pm
比如:
$timestamp = strtotime('+1 day');
上述代码将得到明天的时间戳。
3. 相对日期:除了相对时间,strtotime函数还可以解析相对日期。相对日期可以是以下形式之一:
- 今年:this year
- 明年:next year
- 去年:last year
- 本月:this month
- 下个月:next month
- 上个月:last month
- 上周:last week
- 本周:this week
比如:
$timestamp = strtotime('last week');
上述代码将得到上周的时间戳。
4. 其他字符串格式:strtotime函数还可以解析其他常见的日期和时间格式,比如:
- MM/DD/YYYY: 01/01/2022
- DD-MM-YYYY: 01-01-2022
- YYYY/MM/DD: 2022/01/01
- MM/DD/YYYY HH:MM:SS: 01/01/2022 10:30:00
- YYYY-MM-DD HH:MM:SS: 2022-01-01 10:30:00
比如:
$timestamp = strtotime('2022/01/01 10:30:00');
上述代码将得到指定日期和时间的时间戳。
总结:strtotime函数可以解析多种日期和时间格式,包括相对时间和相对日期,非常灵活方便。但需要注意的是,strtotime函数对于年份的解析范围是从1901年到2038年,超出这个范围的日期将无法正确解析。另外,timezone的设置也会对strtotime函数的解析结果产生影响,因此在使用strtotime函数时 将timezone设置为合适的值。
