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