PHP strtotime()函数详解
在PHP中,strtotime()
函数是一个非常有用的用于将人类可读的日期时间字符串转换为 Unix 时间戳的函数。Unix 时间戳是一个长整型值,表示从1970年1月1日0点0分0秒(格林尼治时间)开始经过的秒数。
语法
strtotime(string time [, intnow = time() ] ) : int|false
$time
:要转换为 Unix 时间戳的日期时间字符串$now
:可选参数,用于指定一个基准时间,默认为当前时间
返回值
如果转换成功,则返回 Unix 时间戳,否则返回false
.
示例
下面是一个简单的示例,展示了如何使用strtotime()
函数将日期时间字符串转换为 Unix 时间戳:
<?php
dateString = "2023-10-15 15:30:00";timestamp = strtotime(dateString);
if(timestamp !== false){
echo "日期时间字符串 'dateString' 转换为 Unix 时间戳为:timestamp";
} else {
echo "转换失败";
}
?>
以上代码将输出:
日期时间字符串 '2023-10-15 15:30:00' 转换为 Unix 时间戳为:1694902200
使用示例
1. 转换常见日期时间格式
strtotime()
函数支持转换许多常见的日期时间格式,例如:
2023-10-15 15:30:00
next Thursday
+1 day
last day of next month
2023-10-15T15:30:00Z
(ISO 8601格式)
<?php
dateString1 = "2023-10-15 15:30:00";dateString2 = "next Thursday";
dateString3 = "+1 day";dateString4 = "last day of next month";
timestamp1 = strtotime(dateString1);
timestamp2 = strtotime(dateString2);
timestamp3 = strtotime(dateString3);
timestamp4 = strtotime(dateString4);
if(timestamp1 !== false){
echo "日期时间字符串 'dateString1' 转换为 Unix 时间戳为:timestamp1";
}
if(timestamp2 !== false){
echo "日期时间字符串 'dateString2' 转换为 Unix 时间戳为:timestamp2";
}
if(timestamp3 !== false){
echo "日期时间字符串 'dateString3' 转换为 Unix 时间戳为:timestamp3";
}
if(timestamp4 !== false){
echo "日期时间字符串 'dateString4' 转换为 Unix 时间戳为:timestamp4";
}
?>
2. 与其他日期时间函数结合使用
strtotime()
函数通常与其他日期时间函数结合使用,例如date()
函数,可以将 Unix 时间戳转换为指定格式的日期时间字符串。
<?php
timestamp = strtotime("2023-10-15 15:30:00");date = date("Y-m-d H:i:s", timestamp);
echo "Unix 时间戳timestamp 转换为日期时间字符串为:$date";
?>
注意事项
- 在转换日期时间字符串时,遵循PHP的日期时间格式要求
- 转换失败时,返回
false
,一定要进行错误处理 - 如果需要将 Unix 时间戳转换为日期时间字符串,可以结合使用
strtotime()
和date()
函数
通过本文的介绍,相信您已经了解了strtotime()
函数的用法和注意事项。在处理日期时间字符串时,strtotime()
函数可以帮助您快速转换为Unix时间戳,方便进行时间计算和比较。