PHP getdate()函数的用法(附带实例)
getdate() 函数用于获取当前的日期和时间,该函数的语法如下:
getdate() 函数返回数组中的键名关键值,如下表所示:
【实例】使用 getdate() 函数,并返回具体值。
原因是假如用户不在程序或配置文件中设置用户的服务器当地时区,PHP 采用格林尼治标准时(GMT),而格林尼治标准时和北京时间大概相差 8 小时。
那么应如何避免时间误差呢?在页头使用 date_default_timezone_set() 函数设置默认采用北京时间(中国采用国际时区东八时区的区时作为标准时间),那么在浏览器上显示的时间就和服务器显示的当前时间一样了。
date_default_timezone_set() 函数的用法如下:
Array getdate([int $timestamp])“$timestamp”是一个可选参数,如果不指定该参数,则使用系统当前的本地时间。该函数结合数组的方式返回日期和时间,数组中的每个元素代表日期和时间中的一个特定组成部分,向函数提交可选的时间戳自变量,以获取与时间戳对应的日期和时间值。
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”不合法)。