PHP strtotime()函数详解

strtotime() 函数用于将包含日期时间格式的字符串转换为 Unix 时间戳。在 PHP 中,Unix 时间戳是指从 Unix 纪元(1970年1月1日)至今的秒数。
语法
strtotime(time, now)
参数:
time:必需,表示要转换的日期时间字符串。now:可选,表示基准时间,如果没有指定,则使用当前时间。
返回值
返回Unix时间戳。如果转换失败,则返回false。
示例
$date = "2021-10-15";
$timestamp = strtotime($date);
echo $timestamp; // 输出:1634265600
上面的示例中,将日期字符串”2021-10-15″使用 strtotime() 函数转换为 Unix 时间戳,并输出。
转换规则
strtotime() 函数可以解析多种格式的日期时间字符串,以下是一些常见的格式:
绝对格式
"now":表示当前时间。"10 September 2000":表示指定日期。"+1 day":表示在未来加一天(可使用-1 day表示在过去减一天)。"next Monday":表示下一个周一。"last Sunday":表示上一个周日。
相对格式
"+5 days":表示在未来加5天。"-3 months":表示在过去减3个月。"+2 weeks":表示在未来加2周。"+4 years":表示在未来加4年。
时间格式
"10:30:00":表示特定时间(可以与日期一起使用)。
注意事项
strtotime()函数对于一些特殊格式的日期时间字符串可能存在解析问题,建议使用标准格式。- 当使用
strtotime()函数时,最好在调用前先检查返回值是否为false。
示例代码
以下是更多示例代码:
示例 1
$date = "2022-01-01";
$timestamp = strtotime($date);
echo date("Y-m-d", $timestamp); // 输出:2022-01-01
示例 2
$date = "next Friday";
$timestamp = strtotime($date);
echo date("Y-m-d", $timestamp); // 输出:下一个周五的日期
示例 3
$date = "+2 weeks";
$timestamp = strtotime($date, strtotime("2021-10-15"));
echo date("Y-m-d", $timestamp); // 输出:在2021-10-15的基础上加2周后的日期
示例 4
$date = "2023-02-30";
$timestamp = strtotime($date);
if ($timestamp === false) {
echo "日期无效";
}
运行结果:
日期无效
总结
通过strtotime()函数,我们可以方便地将日期时间字符串转换为Unix时间戳,从而便于进行日期时间的处理和计算。在使用时,应注意日期时间字符串的格式和可能的解析问题,确保转换结果符合预期。
极客教程