什么是时间戳
在计算机领域,时间戳是一个能够精确记录某一时刻的点的单一的值或者代码。Unix时间戳是从
1970 年 1 月 1 日 00:00:00 (UTC) 经过的秒数,因此 Unix 时间戳是从这个时刻起进行计算的。
PHP时间戳转换成日期格式
使用PHP内置函数date()
PHP中有一个内置函数 date() 方法,可以将一个 Unix 时间戳转换成对应的日期,写法如下:
$unixTime = time();
$date = date("Y-m-d H:i:s",$unixTime);
echo $date; //输出例如:2021-11-11 15:53:16
其中,第一个参数是要转换的 Unix 时间戳,第二个参数是输出格式,可以自定义输出的时间格式。
手动转换时间戳
手动转换 Unix 时间戳也很简单,只需要用 date() 函数实现 Unix 时间戳的提取,再用 substr() 函数和爆炸函数分离年份、月份、日期、小时、分钟、秒的值。
$unixTime = time();
$year= date("Y",$unixTime);//获取年份
$month=date("m",$unixTime);//获取月份
$day= date("d",$unixTime);//获取日期
$hour=date("H",$unixTime);//获取小时
$minute=date("i",$unixTime);//获取分钟
$second=date("s",$unixTime);//获取秒
$dateString=$year.'/'.$month.'/'.$day.' '.$hour.':'.$minute.':'.$second;
echo $dateString;//输出例如:2021/11/11 15:53:16
日期格式转换成时间戳
使用PHP内置函数strtotime()
在 PHP 中,要将日期格式转换成时间戳,我们可以使用 strtotime() 函数,写法如下:
$date = '2021-11-11 15:53:16';
$timestamp = strtotime($date);
echo $timestamp;//输出例如:1636603996
其中,$date 参数表示要转换成时间戳的日期格式字符串,$timestamp 参数表示通过 strtotime() 函数转换得到的时间戳。
手动转换日期格式
手动将日期格式转换成时间戳,可以使用 mktime() 函数,格式如下:
$date = '2021-11-11 15:53:16';
list($year,$month,$day,$hour,$minute,$second) = sscanf($date, "%d-%d-%d %d:%d:%d");
$timestamp = mktime($hour,$minute,$second,$month,$day,$year);
echo $timestamp;//输出例如:1636603996
其中,$date 参数表示要转换成时间戳的日期格式字符串,list() 函数将日期中的年、月、日、时、分、秒提取出来,并赋值给对应的变量,mktime() 函数将这些日期变量转换成时间戳。
总结
时间戳和日期转换在开发过程中是非常常用的功能,我们可以使用 PHP 内置的函数和手动实现的方式来实现这两个功能。