首页 >后端开发 >PHP问题 >php怎么用date()转换时间戳

php怎么用date()转换时间戳

PHPz
PHPz原创
2023-03-28 15:56:411605浏览

在开发了解 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()转换时间戳的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn