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

PHP函数趣谈:如何使用strtotime()函数将时间字符串转为时间戳?

发布时间:2023-06-20 12:25:59

在PHP中,时间戳是一个非常重要的概念。时间戳指的是从1970年1月1日0时0分0秒以来的秒数,是一个整数。PHP内置了许多与时间相关的函数,其中有一个非常常用的函数就是strtotime()函数。这个函数可以将时间字符串转化为时间戳。

一、strtotime()函数的用法

strtotime()函数可以将一个包含日期和时间的字符串转换成时间戳。语法如下:

strtotime(string_time,[,now]);

其中,string_time是需要转换的时间字符串,now是可选参数,用于指定时间的参照点,默认为当前时间。在第二个参数不传的情况下,now的默认值为当前时间,即time()函数的返回值。

示例:

//将时间字符串转换为时间戳
$timestamp = strtotime("2021-01-01 08:00:00");

//输出时间戳
echo $timestamp;

执行以上代码,输出的结果为1610452800,即转换后的时间戳。

二、strtotime()函数支持的时间字符串格式

strtotime()函数支持许多不同格式的时间字符串,下面列出一些常见的格式及其示例:

1.完整日期格式

支持的完整日期格式有:

Y-m-d H:i:s

示例:

//将时间字符串转换为时间戳
$timestamp = strtotime("2021-01-01 08:00:00");

//输出时间戳
echo $timestamp;

输出结果:

1610452800

2.日期格式

支持的日期格式有:

Y-m-d

示例:

//将时间字符串转换为时间戳
$timestamp = strtotime("2021-01-01");

//输出时间戳
echo $timestamp;

输出结果:

1609459200

3.时间格式

支持的时间格式有:

H:i:s

示例:

//将时间字符串转换为时间戳
$timestamp = strtotime("08:00:00");

//输出时间戳
echo $timestamp;

输出结果:

1621142400

4.相对时间格式

除了支持以上的日期和时间格式外,strtotime()函数还支持相对时间格式,例如:

+1 day
-1 day
+1 week
-1 week
+1 month
-1 month
+1 year
-1 year

这些相对时间格式表示当前时间的前/后一天、一周、一个月、一年。示例:

//获取当前时间的下一个月的时间戳
$timestamp = strtotime("+1 month");

//输出时间戳
echo $timestamp;

输出结果:

1626944717

三、strtotime()函数需要注意的问题

1.输入的时间字符串必须遵循正确的格式,否则会返回false。

2.如果有不合法的时间字符串或超出了PHP能够表示的时间范围,strtotime()函数会返回false。

3.如果没有提供第二个参数,strtotime()函数会使用当前时间作为默认的参照点。

4.如果提供了第二个参数,那么该参数必须是一个有效的时间戳或者有效的日期时间格式,否则也会返回false。

四、总结

strtotime()函数是PHP中非常实用的日期时间函数之一。掌握了如何使用strtotime()函数将时间字符串转为时间戳,可以为PHP开发者在处理时间相关的问题时节省不少的时间和精力。同时,需要注意的是,输入的时间字符串格式必须正确,否则会返回false,这是需要注意的问题。