今天小编给大家分享一下php如何用date()转换时间戳的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
时间戳
时间戳是指一种表示时间的方式,即从某个固定的时间点(通常是 1970 年 1 月 1 日 00:00:00 UTC)开始计算到现在所经过的秒数。在 PHP 中,通过调用 time() 函数,可以获取当前时间的时间戳,如下所示:
$timestamp = time();
date() 函数
date() 是用来格式化日期的 PHP 函数,可以将日期时间以指定的格式输出。其语法为:
date($format, $timestamp)
其中,$format 为日期输出格式,$timestamp 是可选参数,代表需要被格式化的时间戳,如果不传入时间戳,则默认使用当前时间戳。以下是一些常用的格式参数:
参数 | 描述 |
---|---|
Y | 四位数表示的年份 |
m | 以数字表示的月份(有前导零) |
d | 月份中的第几天(有前导零) |
H | 小时(24 小时格式,有前导零) |
i | 分钟数(有前导零) |
s | 秒钟数(有前导零) |
w | 星期中的第几天(0 代表星期天,1 代表星期一,以此类推) |
a | 上午或下午(小写) |
A | 上午或下午(大写) |
例如,要将时间戳 1609459584 格式化为形如 “2021-01-01 12:12:12” 的字符串,可以使用以下代码:
echo date('Y-m-d H:i:s', 1609459584);
输出结果为:
2021-01-01 12:12:12
时间戳转日期
如果我们已经有了一个时间戳,可以使用 date() 函数将其转换为指定格式的日期字符串,如下所示:
$timestamp = 1609459584; $datetime = date('Y-m-d H:i:s', $timestamp); echo $datetime;
日期转时间戳
如果我们有一个日期字符串,需要将其转换为时间戳,可以使用 strtotime() 函数。该函数可以将字符串时间转换为 UNIX 时间戳。
$datetime = '2021-01-01 12:12:12'; $timestamp = strtotime($datetime); echo $timestamp;
输出结果为:
1609459584
需要注意的是,strtotime() 函数的输入时间必须是英文日期格式,例如上面的例子中的给出的时间是 "2021-01-01 12:12:12",如果时间格式不正确,函数将返回 false。
本地化时间
上面介绍的 date() 和 strtotime() 默认使用的是服务器本地的时间。但是有时候需要在处理时间时,使用指定的时区,可以用 date_default_timezone_set() 函数来设置时区。
date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s');
时间格式参数不变,输出的日期时间会自动转为东八区时间:
2022-03-15 15:33:57