今天小编给大家分享一下php如何进行时间戳转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
一、将时间戳转换为时间字符串
将时间戳转换为时间字符串,可以采用date()函数。date()函数的第一个参数是格式化字符串,后面是时间戳。下面是一个例子:
$timestamp = time(); //获取当前时间戳 $timeStr = date("Y-m-d H:i:s", $timestamp); //将时间戳转换为时间字符串,格式为“年-月-日 时:分:秒” echo $timeStr; //输出“2021-11-11 11:11:11”
上面的代码中,“Y”表示年份,“m”表示月份,“d”表示日期,“H”表示小时,“i”表示分钟,“s”表示秒钟。
二、将时间字符串转换为时间戳
将时间字符串转换为时间戳,可以采用strtotime()函数。下面是一个例子:
$timeStr = "2021-11-11 11:11:11"; $timestamp = strtotime($timeStr); //将时间字符串转换为时间戳 echo $timestamp; //输出“1636621871”
三、时区问题
在PHP中,时区有着非常重要的作用。如果你的服务器位于东八区,而你的客户位于西五区,那么客户获得的时间肯定会比你慢13个小时。
但是,PHP提供了相应的函数可以解决时区问题。我们可以使用date_default_timezone_set()函数来改变默认的时区。下面是一个例子:
date_default_timezone_set('Asia/Shanghai'); //设置时区为东八区 $timestamp = time(); //获取当前时间戳 $timeStr = date("Y-m-d H:i:s", $timestamp); //将时间戳转换为时间字符串,格式为“年-月-日 时:分:秒” echo $timeStr; //输出“2021-11-11 11:11:11”
以上代码中,设置时区为“Asia/Shanghai”,也就是东八区。
四、时间戳转换工具类
如果你需要在项目中频繁地进行时间戳和时间字符串的转换,那么可以考虑封装一个时间戳转换工具类。下面是一个简单的时间戳转换工具类:
class TimestampConverter{ /** * 时间戳转换为时间字符串 * @param $timestamp 时间戳 * @param string $format 格式化字符串 * @return false|string */ public static function timestampToStr($timestamp, $format = "Y-m-d H:i:s") { date_default_timezone_set('Asia/Shanghai'); return date($format, $timestamp); } /** * 时间字符串转换为时间戳 * @param $timeStr 时间字符串 * @return false|int */ public static function strToTimestamp($timeStr) { date_default_timezone_set('Asia/Shanghai'); return strtotime($timeStr); } }