首页 > 编程笔记 > PHP笔记 阅读:4

PHP getdate()函数的用法(附带实例)

getdate() 函数用于获取当前的日期和时间,该函数的语法如下:
Array getdate([int $timestamp])
“$timestamp”是一个可选参数,如果不指定该参数,则使用系统当前的本地时间。该函数结合数组的方式返回日期和时间,数组中的每个元素代表日期和时间中的一个特定组成部分,向函数提交可选的时间戳自变量,以获取与时间戳对应的日期和时间值。

getdate() 函数返回数组中的键名关键值,如下表所示:

表:getdate() 函数返回数组中的键名关键值说明
键名称 说明
seconds 秒的数字表示,取值范围是 0~59
minutes 分钟的数字表示,取值范围是 0~59
hours 小时的数字表示,取值范围是 0~23
mday 月份中第几天的数字表示,取值范围是 1~31
wday 星期中第几天的数字表示,取值范围是 0~6
mon 月份的数字表示,取值范围是 1~12
year 使用 4 位数字表示的完整年份,如 2023
yday 一年中第几天的数字表示,取值范围是 1~365
weekday 星期中某一天的完整文本表示,如 Sunday
month 月份的完整文本表示,如 January
0 从 UNIX 纪元开始至今的秒数

【实例】使用 getdate() 函数,并返回具体值。
<?php
header("content-type:text/html;charset=utf-8");
date_default_timezone_set('Asia/Shanghai');
$a=getdate();
print_r($a);
echo "<br>";
echo "当前小时:";
echo $a["hours"]."<br>";
echo "当前分钟:";
echo $a["minutes"]."<br>";
echo "当前秒:";
echo $a["seconds"]."<br>";
echo "当前年:";
echo $a["year"]."<br>";
echo "当前月:";
echo $a["mon"]."<br>";
echo "当前日:";
echo $a["mday"]."<br>";
echo "当前星期几用数字表示:";
echo $a["wday"]."<br>";
echo "当前一年中第几天:";
echo $a["yday"]."<br>";
echo "当前星期几用英文表示:";
echo $a["weekday"]."<br>";
echo "当前月用英文表示:";
echo $a["month"]."<br>";
echo "从UNIX纪元开始至今的秒数:";
echo $a[0]."<br>";
?>
运行结果为:
Array
(
    [seconds] => 51
    [minutes] => 16
    [hours] => 12
    [mday] => 16
    [wday] => 1
    [mon] => 6
    [year] => 2025
    [yday] => 166
    [weekday] => Monday
    [month] => June
    [0] => 1750047411
)
当前小时:12
当前分钟:16
当前秒:51
当前年:2025
当前月:6
当前日:16
当前星期几用数字表示:1
当前一年中第几天:166
当前星期几用英文表示:Monday
当前月用英文表示:June
从UNIX纪元开始至今的秒数:1750047411
如果不加上代码“date_default_timezone_set('Asia/Shanghai')”,那么输出的当前时间会为 4,而系统显示的当前时间是 12,相差了8小时,这是为什么呢?

原因是假如用户不在程序或配置文件中设置用户的服务器当地时区,PHP 采用格林尼治标准时(GMT),而格林尼治标准时和北京时间大概相差 8 小时。

那么应如何避免时间误差呢?在页头使用 date_default_timezone_set() 函数设置默认采用北京时间(中国采用国际时区东八时区的区时作为标准时间),那么在浏览器上显示的时间就和服务器显示的当前时间一样了。

date_default_timezone_set() 函数的用法如下:
bool date_default_timezone_set (string timezone_identifier )
date_default_timezone_set() 函数用于设定一个脚本中所有日期时间函数的默认时区。注意,自 PHP 5.1.0 起(此版本日期时间函数已被重写),如果时区不合法,则每个对日期时间函数的调用都会产生一条“E_NOTICE”级别的错误信息。参数“timezone_identifier”表示时区标识符,例如 UTC 或 Europe/Lisbon 返回值,本函数永远返回 TRUE(即使“timezone_identifier”不合法)。

相关文章