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

PHP函数库之strtotime()函数的使用方式

发布时间:2023-06-21 09:01:46

strtotime()函数是PHP中非常常用的函数之一,用于将人类可读的日期时间转换为Unix时间戳。Unix时间戳是一个表示时间的整数,从1970年1月1日00:00:00开始计算。

strtotime()函数的使用方式非常简单,它只需要一个字符串参数。这个字符串参数就是要转换的日期时间字符串。

下面是strtotime()函数的基本语法:

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

其中,$time是要转换为Unix时间戳的日期字符串,$now是可选参数,表示现在的时间,如果没有指定则默认为当前时间。

strtotime()函数的返回值是一个Unix时间戳。如果转换失败,它会返回false。

下面是一些strtotime()函数的常见用法:

1. 转换日期字符串为Unix时间戳

可以使用strtotime()函数将各种格式的日期字符串转换为Unix时间戳。例如下面的代码将日期字符串"2020-06-25"转换为Unix时间戳:

$date_str = '2020-06-25';
echo strtotime($date_str);

这个代码的输出结果是:1593043200,表示2020年6月25日00:00:00的Unix时间戳。

2. 转换时间字符串为Unix时间戳

除了日期字符串,strtotime()函数还可以将各种格式的时间字符串转换为Unix时间戳。例如下面的代码将时间字符串"10:30:00"转换为Unix时间戳:

$time_str = '10:30:00';
echo strtotime($time_str);

这个代码的输出结果是:-1。这是因为strtotime()函数在处理时间字符串时,会默认将它们解析为当天的日期时间。如果没有指定日期,则默认为1970年1月1日。因此,在没有指定日期的情况下,strtotime()函数无法将时间字符串转换为Unix时间戳。

3. 转换包含日期时间信息的字符串为Unix时间戳

strtotime()函数还可以处理包含日期时间信息的字符串。例如下面的代码将一个包含日期和时间信息的字符串转换为Unix时间戳:

$date_time_str = '2020-06-25 10:30:00';
echo strtotime($date_time_str);

这个代码的输出结果是:1593084600,表示2020年6月25日10:30:00的Unix时间戳。

4. 转换相对时间字符串为Unix时间戳

strtotime()函数还支持一些相对时间字符串,例如"tomorrow"、"next Friday"、"last Monday"等。将这些字符串传入strtotime()函数中,它会自动解析为对应的日期时间,并返回它们的Unix时间戳。

例如下面的代码将字符串"tomorrow"转换为Unix时间戳:

echo strtotime('tomorrow');

这个代码的输出结果是:1593139200,表示明天(2020年6月26日)的Unix时间戳。

5. 转换ISO 8601格式的日期时间字符串为Unix时间戳

ISO 8601是一个标准的日期时间格式,例如"2020-06-25T10:30:00+08:00"。strtotime()函数也可以将这种格式的日期时间字符串转换为Unix时间戳。例如下面的代码将一个ISO 8601格式的日期时间字符串转换为Unix时间戳:

$iso8601_str = '2020-06-25T10:30:00+08:00';
echo strtotime($iso8601_str);

这个代码的输出结果跟之前的示例一样,是:1593084600。

总结:

strtotime()函数是一个非常有用的函数,它可以帮助我们将各种格式的日期时间字符串转换为Unix时间戳。熟练掌握strtotime()函数的使用,可以让我们更加方便地处理各种日期时间相关的问题。