在 PHP 中,我们经常需要将时间戳(timestamp)转换为日期格式,或者将日期格式转换为时间戳。这时,PHP 时间转换日期函数就是必不可少的工具。本篇文章就将详细介绍 PHP 中常用的时间转换日期函数。
PHP 日期格式符号
在介绍时间转换日期函数之前,我们需要先了解 PHP 的日期格式符号。日期格式符号是用于定义日期格式的符号,它们被放置在日期格式字符串中。下面是 PHP 中常用的日期格式符号:
- Y:显示完整的年(例如,2022)
- y:显示两位数字的年(例如,22)
- m:显示数字的月份,有前导零(01-12)
- n:显示数字的月份,没有前导零(1-12)
- d:显示两位数字的日期,有前导零(01-31)
- j:显示数字的日期,没有前导零(1-31)
- H:显示两位数字的小时,有前导零(00-23)
- h:显示两位数字的小时,有前导零(01-12)
- i:显示两位数字的分钟,有前导零(00-59)
- s:显示两位数字的秒数,有前导零(00-59)
- A:显示大写的上午或下午(AM 或 PM)
- a:显示小写的上午或下午(am 或 pm)
PHP 时间戳转换为日期格式
在 PHP 中,我们可以使用 date() 函数将时间戳转换为日期格式。其基本语法如下:
```
date(string $format, int $timestamp = time())
```
其中,$format 是日期格式字符串,$timestamp 是一个可选参数,表示时间戳。如果不传递该参数,则默认使用当前时间戳。
下面是一个实际的示例,将时间戳转换为日期格式:
```
echo date('Y-m-d H:i:s', 1641711600);
```
在这个示例中,我们将时间戳 1641711600 转换为日期格式,并使用 Y-m-d H:i:s 的格式进行显示。
输出的结果为:
```
2022-01-09 08:00:00
```
可以看到,时间戳已经成功转换为日期格式,并以指定的格式进行了显示。
PHP 日期格式转换为时间戳
除了将时间戳转换为日期格式之外,我们还可以使用 PHP 中的 strtotime() 函数将日期格式转换为时间戳。其基本语法如下:
```
strtotime(string $time, int $now = time())
```
其中,$time 表示要转换为时间戳的日期格式字符串,$now 表示可选参数,表示当前时间戳。如果不传递该参数,则默认使用当前时间戳。
下面是一个实际的示例,将日期格式转换为时间戳:
```
echo strtotime('2022-01-09 08:00:00');
```
在这个示例中,我们将日期格式字符串 '2022-01-09 08:00:00' 转换为时间戳。
输出的结果为:
```
1641711600
```
可以看到,日期格式已经成功转换为时间戳,并返回了时间戳的值。
PHP 时间转换为人性化格式
除了将时间戳转换为日期格式之外,我们还可以将时间转换为人性化的格式,如“5 分钟前”、“1 小时前”、“昨天”、“上周”等等。这时,我们可以使用 PHP 中的自定义函数来实现。
下面是一个自定义函数,将时间转换为人性化格式:
```
function time_to_human($time) {
$timestamp = strtotime($time);
$diff = time() - $timestamp;
if ($diff < 60) {
return '刚刚';
} else if ($diff < 3600) {
return round($diff / 60) . ' 分钟前';
} else if ($diff < 86400) {
return round($diff / 3600) . ' 小时前';
} else if ($diff < 604800) {
return round($diff / 86400) . ' 天前';
} else if ($diff < 2592000) {
return round($diff / 604800) . ' 周前';
} else {
return date('Y-m-d', $timestamp);
}
}
```
这个函数包含一个参数 $time,表示要转换为人性化格式的时间。首先,我们使用 strtotime() 函数将时间转换为时间戳,然后计算时间戳与当前时间戳之间的差值 $diff。
接下来,我们通过 $diff 的大小,判断时间间隔,并返回人性化的格式。如果时间间隔小于 60 秒,就返回“刚刚”;如果时间间隔小于 1 小时,就返回“N 分钟前”;如果时间间隔小于 1 天,就返回“N 小时前”;如果时间间隔小于 1 周,就返回“N 天前”;如果时间间隔小于 1 个月,就返回“N 周前”;否则,返回标准的日期格式。
下面是一个测试示例:
```
echo time_to_human('2022-01-10 09:13:22');
```
在这个示例中,我们将时间字符串 '2022-01-10 09:13:22' 转换为人性化格式。
输出的结果为:
```
10 小时前
```
可以看到,时间成功地被转换成了人性化格式,并且返回了正确的时间差值。
总结
在本篇文章中,我们详细介绍了 PHP 中常用的时间转换日期函数。通过这些函数,我们可以轻松地将时间戳转换为日期格式,将日期格式转换为时间戳,甚至将时间转换为人性化的格式。
为了更好地使用这些函数,我们还了解了 PHP 中的日期格式符号,并且通过自定义函数实现了时间转换为人性化格式的例子。
掌握了这些知识,我们可以有效地处理PHP中的时间与日期数据,让我们的Web开发更加高效。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/
自己是水,维系着我的生命。