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

使用PHP的strtotime()函数将日期字符串转换为UNIX时间戳。

发布时间:2023-06-24 21:16:46

UNIX时间戳是指自1970年1月1日0时0分0秒UTC(Coordinated Universal Time,世界协调时间)起经过的秒数。在计算机系统中,常常使用UNIX时间戳来表示时间。由于UNIX时间戳使用整数表示时间,因此在计算时间时非常方便。在PHP中,可以使用strtotime()函数将日期字符串转换为UNIX时间戳。

strtotime()函数接受一个日期时间字符串作为输入,并将其转换为UNIX时间戳。这个函数不仅可以将常见的日期格式转换为UNIX时间戳,还可以解析相对时间字符串。例如,可以将“now”(当前时间)或“next Friday”(下周五)这样的相对时间字符串转换为UNIX时间戳。

除了上述常见的日期格式和相对时间字符串之外,strtotime()函数还支持以下日期格式:

1. ISO 8601日期格式

ISO 8601格式如下:

YYYY-MM-DDThh:mm:ssTZD

其中,YYYY表示年份,MM表示月份,DD表示日期,hh表示小时,mm表示分钟,ss表示秒数,TZD表示时区。时区可以是Z(UTC时间),+hh:mm(UTC时差为正数),或-hh:mm(UTC时差为负数)。例如,2019-05-14T20:15:00+08:00表示北京时间2019年5月14日20点15分00秒。

2. 数字日期格式

数字日期格式如下:

YYYYMMDD

其中,YYYY表示年份,MM表示月份,DD表示日期。例如,20190514表示2019年5月14日。

3. 英文日期格式

英文日期格式如下:

Day Month Year

其中,Day表示星期几的英文缩写(如Mon表示星期一),Month表示月份的英文缩写(如Jan表示一月),Year表示年份。例如,14 May 2019表示2019年5月14日。

使用strtotime()函数将日期字符串转换为UNIX时间戳非常简单。可以直接调用该函数并将日期字符串作为参数,然后该函数将返回相应的UNIX时间戳。例如,以下代码将日期字符串“2019-05-14T20:15:00+08:00”转换为UNIX时间戳:

$date_string = "2019-05-14T20:15:00+08:00";
$timestamp = strtotime($date_string);
echo $timestamp;

输出结果为:

1557850500

可以看到,函数返回了一个整数值1557850500,这个值就是输入日期时间字符串所表示的UNIX时间戳。

需要注意的是,strtotime()函数在解析日期时间字符串时会尝试猜测日期的格式,因此输入的日期字符串必须是一种可以被 strtotime() 函数解析的格式。如果输入了一个无法解析的日期字符串,则该函数会返回 false。

此外,strtotime()函数还支持在日期字符串中使用“+”和“-”符号来进行日期计算。例如,可以使用以下代码获取当前时间前一天的UNIX时间戳:

$yesterday = strtotime("-1 day");
echo $yesterday;

输出结果为:

1558677592

以上就是使用PHP的strtotime()函数将日期字符串转换为UNIX时间戳的方法和注意事项。