PHP Date() 和时间函数:如何获取当前时间戳?
⚡ 智能摘要
PHP 的 date() 函数可以将时间戳格式化为人类可读的日期和时间。本教程将解释日期语法、Unix 时间戳、如何列出和设置时区、用于构建时间戳的 mktime 函数,以及时间、日、月、年格式字符的完整参考。

PHP date() 函数
PHP 的 date 函数是一个内置函数,它简化了日期数据类型的处理。PHP date 函数用于将日期或时间格式化为人类可读的格式。它可以用来显示文章的发布日期,或者记录数据库中数据的最后更新时间。
PHP 日期语法和示例
PHP date() 函数的基本语法如下。
<?php date(format,[timestamp]); ?>
这里,
- “date(…)”函数返回格式化后的当前时间戳。 PHP 在服务器上。
- “格式”是指我们希望输出结果呈现的一般格式,例如:
- “Ymd”表示PHP日期格式YYYY-MM-DD
- “Y”显示当前年份
- “[timestamp]”是可选的。如果未提供时间戳,PHP 将使用服务器上的当前日期和时间。
让我们来看一个显示当前年份的简单例子。
<?php echo date("Y"); ?>
输出:
2026
什么是时间戳?
在 PHP 中,时间戳是一个数值,以秒为单位,表示当前时间与 1 时刻的值之间的距离。st 1970 年 1 月 00:00:00 格林威治标准时间 (GMT)。
时间函数返回的值取决于默认时区。
默认时区在 php.ini 文件中设置。也可以使用 date_default_timezone_set 函数以编程方式设置。
以下代码显示当前时间戳。
<?php
echo time();
?>
假设您已将 timestamp.php 文件保存在 phptuts 文件夹中,请浏览至该文件夹。 URL http://localhost/phptuts/timestamp.php
注意:时间戳的值并非恒定不变,它每秒都会变化。
获取可用时区标识符列表
在了解如何通过编程方式设置默认时区之前,让我们先来看看如何获取支持的时区列表。
<?php $timezone_identifiers = DateTimeZone::listIdentifiers(); foreach($timezone_identifiers as $key => $list){ echo $list . "<br/>"; } ?>
这里,
- “$timezone_identifiers = DateTimeZone::listIdentifiers();”调用了DateTimeZone内置类的静态方法listIdentifiers。listIdentifiers方法返回一个标识符列表,并将这些标识符赋值给变量$timezone_identifiers。
- “foreach{…}”遍历数组并打印其值。
假设您已将文件 list_time_zones.php 保存在 phptuts 文件夹中,请浏览到该文件夹。 URL http://localhost/phptuts/list_time_zones.php
PHP 以编程方式设置时区
date_default_timezone_set 函数允许您从 PHP 脚本设置默认时区。
设定的时区将用于所有日期。 PHP 函数 在你的脚本中。它的语法如下。
<?php date_default_timezone_set(string $timezone_identifier); ?>
这里,
- “date_default_timezone_set()” 是设置默认时区的函数
- “string $timezone_identifier” 是时区标识符
以下脚本会根据 php.ini 中设置的默认时区显示时间。然后,它会将默认时区更改为 Asia/Calcutta,并再次显示时间。
<?php echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s"); date_default_timezone_set("Asia/Calcutta"); echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s"); ?>
假设您已将文件 set_time_zone.php 保存在 phptuts 文件夹中,请浏览到该文件夹。 URL http://localhost/phptuts/set_time_zone.php
PHP Mktime 函数
mktime 函数返回 Unix的 格式。
它具有以下语法。
<?php mktime(hour, minute, second, month, day, year, is_dst); ?>
这里,
- “mktime(…)” 是制作 PHP 时间戳的函数
- “小时”是可选的;它指的是小时数。
- “分钟”是可选的;它指的是分钟数。
- “秒”是可选的,它指的是秒数。
- “月份”是可选的;它指的是月份的数字。
- “day”是可选的;它指的是日期的数字。
- “年份”是可选的;它指的是年份的数字。
- “is_dst”参数为可选参数,用于确定是否实行夏令时(DST)。1表示实行夏令时,0表示不实行夏令时,-1表示不确定。
现在让我们来看一个使用 mktime 函数为日期 2025 年 10 月 13 日创建时间戳的示例。
<?php
echo mktime(0,0,0,10,13,2025);
?>
这里,
- “0,0,0”分别代表小时、分钟和秒。
- “10” 是月份
- “13” 是月份中的日期
- “2025”是
输出:
1760328000
PHP 日期格式参考
下表显示了使用 PHP 日期函数时常用的格式字符。
时间参数
| 参数 | 描述 | 例如: |
|---|---|---|
| “ R” | 返回完整的日期和时间 |
<?php echo date("r"); ?> |
| “a”、“A” | 返回当前时间是上午还是下午,AM 还是 PM |
<?php echo date("a"); echo date("A"); ?> |
| “g”、“G” | 分别返回不带前导零的小时数 [1 到 12]、[0 到 23] |
<?php echo date("g"); echo date("G"); ?> |
| “h”、“H” | 返回带前导零的小时数 [01 至 12],[00 至 23] |
<?php echo date("h"); echo date("H"); ?> |
| “是” | 返回带前导零的分钟/秒[00 至 59] |
<?php echo date("i"); echo date("s"); ?> |
日参数
| 参数 | 描述 | 例如: |
|---|---|---|
| “ d” | 返回带前导零的月份日期 [01 到 31] |
<?php echo date("d"); ?> |
| “j” | 返回不带前导零的月份日期 [1 到 31] |
<?php echo date("j"); ?> |
| “d” | 返回星期几名称的前三个字母(周日至周六) |
<?php echo date("D"); ?> |
| “ L” | 返回星期几的名称(星期日到星期六) |
<?php echo date("l"); ?> |
| “w” | 返回不带前导零的星期几 [0 到 6];星期日用零 (0) 表示,星期六用六 (6) 表示。 |
<?php echo date("w"); ?> |
| “和” | 返回一年中的第几天,不带前导空格 [0 至 365] |
<?php echo date("z"); ?> |
月份参数
| 参数 | 描述 | 例如: |
|---|---|---|
| “m”个 | 返回带前导零的月份数字 [01 至 12] |
<?php echo date("m"); ?> |
| “ n” | 返回不带前导零的月份数字 [1 至 12] |
<?php echo date("n"); ?> |
| “ M” | 返回月份名称的前 3 个字母 [Jan 至 Dec] |
<?php echo date("M"); ?> |
| “F” | 返回月份名称 [January 至 December] |
<?php echo date("F"); ?> |
| “ t” | 返回一个月的天数 [28 至 31] |
<?php echo date("t"); ?> |
年份参数
| 参数 | 描述 | 例如: |
|---|---|---|
| “L” | 如果是闰年则返回 1,如果不是闰年则返回 0。 |
<?php echo date("L"); ?> |
| “ Y” | 返回四位数的年份格式 |
<?php echo date("Y"); ?> |
| “ Y” | 返回两位数年份格式(00 到 99) |
<?php echo date("y"); ?> |



