PHP strtotime()函数详解

PHP strtotime()函数详解

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":表示特定时间(可以与日期一起使用)。

注意事项

  1. strtotime() 函数对于一些特殊格式的日期时间字符串可能存在解析问题,建议使用标准格式。
  2. 当使用 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时间戳,从而便于进行日期时间的处理和计算。在使用时,应注意日期时间字符串的格式和可能的解析问题,确保转换结果符合预期。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程