PHP Date() 和 Time 函数:如何获取当前时间戳?
PHP date() 函数
PHP date() 函数是一个内置函数,用于简化日期数据类型的操作。PHP date() 函数用于将日期或时间格式化为人类可读的格式。它可以用于显示文章的发布日期,或在数据库中记录最后更新日期。
PHP Date 语法和示例
PHP Date 的基本语法如下:
<?php date(format,[timestamp]); ?>
此处,
- “date(…)” 是在服务器上的 PHP 中返回当前时间戳的函数。
- “format” 是我们希望输出的通用格式,例如:
- PHP 日期格式 YYYY-MM-DD 为 “Y-m-d”
- “Y” 显示当前年份
- “[timestamp]” 是可选的。如果没有提供时间戳,PHP 将获取服务器上的当前 PHP 日期时间。
让我们看一个显示当前年份的基本示例。
<?php
echo date("Y");
?>
输出
2018
什么是时间戳?
PHP 中的时间戳是当前时间与 1970 年 1 月 1 日 00:00:00 格林尼治标准时间 (GMT) 之间的秒数。
time() 函数返回值取决于默认时区。
默认时区在 php.ini 文件中设置。
也可以使用 date_default_timezone_set 函数以编程方式设置。
下面的代码显示了当前时间戳
<?php echo time(); ?>
假设您将文件 timestamp.php 保存在 phptuts 文件夹中,请浏览到 URL https:///phptuts/timestamp.php
注意: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 https:///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 https:///phptuts/set_time_zone.php
PHP Mktime 函数
mktime 函数以 Unix 格式返回时间戳。
它具有以下语法。
<?php mktime(hour, minute, second, month, day, year, is_dst); ?>
此处,
- “mktime(…)” 是创建 PHP 时间戳的函数。
- “hour” 是可选的,表示小时数。
- “minute” 是可选的,表示分钟数。
- “second” 是可选的,表示秒数。
- “month” 是可选的,表示月份的数字。
- “day” 是可选的,表示日期的数字。
- “year” 是可选的,表示年份的数字。
- “is_dst” 是可选的,用于确定夏令时 (DST)。1 表示 DST,0 表示不是,-1 表示未知。
现在让我们来看一个使用 mktime 函数为 2025/10/13 创建时间戳的示例。
<?php echo mktime(0,0,0,10,13,2025); ?>
此处,
- “0,0,0” 分别表示小时、分钟和秒。
- “13” 是月份中的第几天。
- “10” 是月份的编号。
- “2025” 是年份。
输出
1760328000
PHP Date 函数参考
下表显示了在使用 PHP date() 函数时常用的参数。
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");
?>
|
| “i”,”s” | 分别返回带前导零的分钟/秒 [00 到 59]。 |
<?php
echo date("i");
echo date("s");
?>
|
日期参数
| 参数 | 描述 | 示例 |
|---|---|---|
| “d” | 返回带前导零的月份中的日期 [01 到 31]。 |
<?php
echo date("d");
?>
|
| “j” | 返回不带前导零的月份中的日期 [1 到 31]。 |
<?php
echo date("j");
?>
|
| “D” | 返回星期几的前 3 个字母 [周一到周日]。 |
<?php
echo date("D");
?>
|
| “l” | 返回星期几的完整名称 [星期日到星期六]。 |
<?php
echo date("l");
?>
|
| “w” | 返回星期几(0 到 6),其中星期日为 0,星期六为 6。 |
<?php
echo date("w");
?>
|
| “z” | 返回一年中的第几天(0 到 365)。 |
<?php
echo date("z");
?>
|
月份参数
| 参数 | 描述 | 示例 |
|---|---|---|
| “m” | 返回带前导零的月份编号 [01 到 12]。 |
<?php
echo date("m");
?>
|
| “n” | 返回不带前导零的月份编号 [1 到 12]。 |
<?php
echo date("n");
?>
|
| “M” | 返回月份名称的前 3 个字母 [一月到十二月]。 |
<?php
echo date("M");
?>
|
| “F” | 返回月份的完整名称 [一月到十二月]。 |
<?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");
?>
|
摘要
- PHP 中的 date() 函数用于将时间戳格式化为用户期望的格式。
- 时间戳是当前时间与 1970 年 1 月 1 日 00:00:00 GMT 之间的秒数。它也称为 UNIX 时间戳。
- 所有 PHP date() 函数都使用 php.ini 文件中设置的默认时区。
- 也可以使用 PHP 脚本以编程方式设置默认时区。



