PHP strtotime 函数详解

PHP strtotime 函数详解

PHP strtotime 函数详解

简介

PHP strtotime 函数是一个非常有用的日期转换函数,可以将人类可读的日期和时间字符串转换为 Unix 时间戳。Unix 时间戳是一个表示从 1970 年 1 月 1 日零点到指定日期时间的秒数。

strtotime 函数在处理日期字符串时非常灵活,可以识别大部分常见的日期和时间格式,包括但不限于以下几种:

  • 2021-01-01
  • 2021/01/01
  • 2021.01.01
  • January 1, 2021
  • 1st January 2021
  • 2021年1月1日

该函数还可解析相对日期时间,如 “yesterday” (昨天)、”tomorrow” (明天)、”next week” (下周) 等。

接下来,我们将详细介绍 PHP strtotime 函数的使用方法及一些注意事项。

基本用法

strtotime 函数的基本语法如下所示:

strtotime(string time, intnow = time()): int|false
  • $time:要转换的日期时间字符串。
  • $now(可选):用于参照相对时间的时间戳。

该函数返回 Unix 时间戳,如果转换失败则返回 false。

现在,让我们看几个具体的示例来了解如何使用 strtotime 函数。

示例 1:将日期字符串转换为 Unix 时间戳

$timeString = "2022-01-01";
$timestamp = strtotime($timeString);

echo $timestamp; // 输出:1640995200

在上面的示例中,我们将格式为 “2022-01-01” 的日期字符串转换为 Unix 时间戳。转换成功后,我们将 Unix 时间戳 1640995200 输出到屏幕上。

示例 2:将相对日期字符串转换为 Unix 时间戳

$relativeTimeString = "tomorrow";
$timestamp = strtotime($relativeTimeString);

echo $timestamp; // 输出:1661971200

在上面的示例中,我们将相对日期字符串 “tomorrow” 转换为 Unix 时间戳。要注意的是,相对日期字符串是相对于给定的时间戳(默认为当前时间)进行计算的。在示例中,我们得到的 Unix 时间戳 1661971200 是表示明天这个时间点的。

日期时间格式

strtotime 函数能够理解多种日期时间格式,并将其转换为 Unix 时间戳。下面是一些常见的日期时间格式及其对应的示例:

  • “2021-01-01″:日期格式,返回该日期的零点的 Unix 时间戳。
  • “2021-01-01 12:34:56″:日期时间格式,返回指定日期时间的 Unix 时间戳。
  • “January 1, 2022″:英文日期格式,返回指定日期的零点的 Unix 时间戳。
  • “next Monday”:相对日期格式,返回下一个周一的零点的 Unix 时间戳。

在使用 strtotime 函数时,我们可以根据需求选择合适的日期时间格式。

一些特殊用法

处理年份边界

strtotime 函数在处理跨年份的日期时存在一些特殊情况。例如,如果给定的日期为 “2021-12-31″,那么通过 strtotime 函数转换得到的 Unix 时间戳将是下一年的时间戳。

$dateString = "2021-12-31";
$timestamp = strtotime($dateString);

echo $timestamp; // 输出:1640908800

处理错误情况

当 strtotime 函数无法解析给定的日期时间字符串时,它会返回 false。因此,在使用该函数的时候,我们应该对返回值进行判断,以处理可能的错误情况。

$dateString = "invalid date string";
$timestamp = strtotime($dateString);

if ($timestamp === false) {
    echo "日期时间转换失败!";
}

总结

通过本文的介绍,我们了解了 PHP strtotime 函数的基本用法以及一些注意事项。strtotime 函数在日期时间相关的处理中非常实用,可以方便地将人类可读的日期时间字符串转换为机器可处理的 Unix 时间戳。在实际开发中,我们可以根据 strtotime 函数的灵活性,灵活应用它来满足各种需求。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程