在PHP中使用strtotime函数将日期和时间转换为时间戳
时间戳是一种计算机表示时间的方式,它表示从格林威治标准时间1970年1月1日早上0点0分0秒开始所经过的秒数。时间戳的使用十分广泛,在Web开发中,经常需要将一些日期和时间转化成时间戳进行处理,PHP提供了strtotime函数,可以将各种格式的日期和时间转换为时间戳。
使用strtotime函数将日期和时间转换为时间戳需要遵循以下格式:
strtotime( string $time [, int $now ] )
其中$time表示需要转换的日期和时间字符串,$now表示参考时间,默认为当前时间。
strtotime函数支持的日期和时间字符串格式有以下几种:
1. 时间戳格式:直接传入时间戳的整数值即可,例如strtotime(“1589102020”)。
2. 年月日格式:可以传入类似“2020-05-11”的字符串,会自动将其转化为时间戳。
3. 相对时间格式:可以传入类似“+1 day”、“+1 week”、“-2 month”等字符串,代表当前时间加上或减去指定的时间段,最终得到的结果是一个时间戳。
4. 英文格式:可以传入类似“next Wednesday”、“last Friday”、“first day of next month”等字符串,会自动计算出下一个或上一个指定的日期,并返回对应的时间戳。
下面我们来看一些示例。
1. 将“2020-05-11”转换为时间戳
$time = strtotime("2020-05-11");
echo $time; // 输出1589155200
2. 将“+1 week”转换为时间戳
$time = strtotime("+1 week");
echo $time; // 输出当前时间加上一周之后的时间戳
3. 将“next Friday”转换为时间戳
$time = strtotime("next Friday");
echo $time; // 输出下一个周五的时间戳
4. 将“1589102020”转换为日期格式
$time = strtotime("2020-05-10");
$date = date("Y-m-d H:i:s", $time);
echo $date; // 输出2020-05-10 22:07:00
需要注意的是,strtotime函数在处理某些特殊格式的日期和时间字符串时可能会出现错误,比如“2020-02-30”这样的非法日期。因此在使用时需要谨慎,最好先对输入的字符串进行合法性判断。
总之,strtotime函数是PHP中一个非常方便、实用的函数,可以帮助我们很快地将各种格式的日期和时间转化成时间戳,充分利用时间戳进行各种时间计算。
