在开发了解 PHP 的过程中,时间戳(timestamp)和日期(date)都是常常会用到的概念。在处理时间数据时,需要将时间戳转换成日期,或者将日期转换成时间戳。
PHP 提供了多种函数来方便地完成时间戳和日期之间的转换。本文将详细介绍 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
小结
在 PHP 中,timestamp 和 date 的转换是非常常见的操作。通过本文介绍的 date() 函数和 strtotime() 函数,可以方便地完成这些转换。
使用场景也非常广泛,比如在网站中发布文章时,我们需要将时间戳转换为日期,或者将人类可读的日期转换为时间戳来进行比较。无论在哪个场景中,掌握好这些函数都是非常重要的。
以上就是php怎么用date()转换时间戳的详细内容,更多请关注编程网其它相关文章!