在 PHP 中,时间戳表示的是指定日期和时间的秒数,自1970年1月1日0时0分0秒起的秒数。在 PHP 中,通过将一个时间戳转换为具有可读性的日期和时间来展示它,也可以用于将一个具有可读性的日期和时间转换为一个时间戳。
## 1. PHP的时间戳函数
PHP 提供了很多时间和日期的函数,其中与时间戳相关的函数主要有以下几个:
### 1.1. time()
time() 函数返回当前时间的 Unix 时间戳,它是一个字符串或者整型(int)值,表示自 Unix 纪元(1970年1月1日 00:00:00 GMT)至当前时间的秒数。
示例代码如下:
print time(); //输出当前时间戳
### 1.2. strtotime()
strtotime() 函数将日期时间描述解析为 Unix 时间戳,它是一个字符串或整型(int)值,并与时间戳交互。解析方式如下:
- 以 "now"(当前日期和时间)作为基准来计算其他日期的时间戳。
- 相对例如 "+5 days","-1 month","+1 week 2 days 4 hours 2 seconds" 此类格式的字符串来计算日期的时间戳。
- 自1970年1月1日 00:00:00 GMT 以来的秒数。
示例代码如下:
print strtotime("now"); //输出当前时间戳
print strtotime("10 September 2000"); //输出指定日期的时间戳
print strtotime("+1 week 2 days 4 hours 2 seconds"); //输出当前日期加上一周两天四小时两秒后的时间戳
### 1.3. date()
date() 函数格式化日期/时间并返回一个格式化后的字符串。日期的格式由字符串指定,可以是从一些预定义的常量组合或一个自定义的日期和时间格式的组合。
示例代码如下:
print date("Y-m-d H:i:s", time()); //输出当前日期和时间的可读格式
## 2. 将时间戳转换为本地时间的方法
如果需要将 UNIX 时间戳转换为当前的本地时间,可以使用 date() 函数将其格式化成一个本地日期。此时可以使用可选的第二个参数 $timestamp 指定 UNIX 时间戳,如果省略了参数 $timestamp,date() 函数将使用当前时间。
下面我们将结合一个例子来演示如何将时间戳转换为本地时间。
设定本地时区为 "Asia/Shanghai" :
date_default_timezone_set("Asia/Shanghai");
利用 date() 函数将 UNIX 时间戳转换为 本地时间:
$timestamp = 1631589818;
$date = date('Y-m-d H:i:s', $timestamp);
echo $date;
上述代码输出的结果为:2021-09-14 09:10:18。
## 3. 小结
通过本文的介绍,我们了解了 PHP 中与时间戳相关的函数,并且详细讲解了如何将时间戳转换为本地时间。同时如果需要将本地时间格式化为时间戳,也可以使用 strtotime() 函数实现。在实际开发中,我们可以根据需求选择适当的函数进行处理,以便更好地完成对时间戳的操作。