欢迎访问宙启技术站
智能推送

PHP的strtotime函数:将字符串日期转换为时间戳

发布时间:2023-11-08 07:04:39

strtotime() 函数是 PHP 中一个非常有用的函数,它可以将字符串日期转换成时间戳。时间戳是一个表示某个特定日期和时间的整数,以秒为单位计算,从 1970 年 1 月 1 日 00:00:00 GMT 开始计算。

该函数的基本语法如下:

strtotime(string $time [, int $now = time() ] ) : int|false

其中,$time 是需要转换的字符串日期,$now 是可选参数,用于指定计算时间戳时的基准时间,默认为当前时间。

strtotime() 函数支持的字符串日期格式非常灵活,下面是一些常见的用法和示例:

1. 基本日期格式:支持日期格式如下,可以包含分隔符 "-"/"/"." 和空格。

- 年:完整 4 位数,如 "2021";

- 月:1-12 之间的数字,可以使用 0 前缀表示一位数月份,如 "01" 或 "1";

- 日:1-31 之间的数字,可以使用 0 前缀表示一位数日期,如 "01" 或 "1";

- 时:0-23 之间的数字,可以使用 0 前缀表示一位数小时,如 "00" 或 "0";

- 分:0-59 之间的数字,可以使用 0 前缀表示一位数分钟,如 "00" 或 "0";

- 秒:0-59 之间的数字,可以使用 0 前缀表示一位数秒数,如 "00" 或 "0";

示例:

echo strtotime("2021-01-01");  // 输出:1609459200
echo strtotime("2021/01/01");  // 输出:1609459200
echo strtotime("2021.01.01");  // 输出:1609459200

2. 相对日期格式:可以使用一些相对的描述词来表示日期。

- "now":当前日期和时间;

- "+n seconds/minutes/hours/days/weeks/months/years":向未来偏移 n 个秒/分钟/小时/天/周/月/年;

- "-n seconds/minutes/hours/days/weeks/months/years":向过去偏移 n 个秒/分钟/小时/天/周/月/年;

示例:

echo strtotime("now");                      // 输出:当前时间的时间戳
echo strtotime("1 day");                     // 输出:当前时间的时间戳加上一天的秒数
echo strtotime("+1 week 2 days 4 hours");     // 输出:当前时间的时间戳加上一周两天4小时的秒数
echo strtotime("next Thursday");             // 输出:下个星期四的时间戳

3. 英文日期格式:支持一些英文日期格式,如 "Jan"(一月) 到 "Dec"(十二月)。

示例:

echo strtotime("12 November 2021");  // 输出:指定日期的时间戳
echo strtotime("Dec 25, 2021");      // 输出:指定日期的时间戳
echo strtotime("December 25 2021");  // 输出:指定日期的时间戳

需要注意的是,strtotime() 函数的返回值是一个整数表示的时间戳,如果转换失败则返回 false,所以在使用时需要进行判断返回值。

以上是对 PHP 的 strtotime() 函数进行的比较详细的说明,它在处理字符串日期转换为时间戳方面非常方便实用。希望能对你的学习和开发有所帮助。