在之前的文章中给大家带来了《PHP中应该怎样去完成时区的设置?》,其中给大家介绍了怎样在PHP中设置时区的几种方法,本篇文章我们继续来看一看PHP的相关知识,我们在PHP中应该如何获取当前的时间,希望对大家有帮助!
在PHP中的日期和时间函数里,想要获取到当前的时间,我们就需要了解什么是UNIX时间戳。
UNIX 时间戳表示的是,自1970年1月1日0时0分0秒(格林尼治时间)起到现在时刻的总秒数。下面就给大家介绍一下可以获取当前时间的几种函数
-
time()
函数
time()函数算是最简单的一个获取当前时间的函数了,它能够返回当前时间的UNIX时间戳。示例如下:
<?php echo time(); ?>
当我运行函数时的时间在2021年10月21日10时50分左右,输出结果如下:
-
mktime()
函数
mktime()函数不仅能够返回当前时间的UNIX时间戳,也可以返回指定时间的UNIX时间戳,它的语法格式如下:
mktime(指定时间时,指定时间分,指定时间秒,指定时间月,指定时间日,指定时间年)
该函数的参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
获得当前时间的UNIX时间戳,示例如下:
<?php echo mktime(); // 没有设置参数则默认取得当前GMT时间 ?>
输出结果:
获得指定时间的UNIX时间戳,示例如下:
<?php echo mktime(11,0,0,10,21,2021); //设置参数表示GMT时间2021年10月21日11点0分0秒 ?>
输出结果:
-
gmmktime()
函数
gmmktime() 函数一样也可取得 GMT 日期的 UNIX 时间戳,它的语法格式如下:
gmmktime(指定时间时,指定时间分,指定时间秒,指定时间月,指定时间日,指定时间年)
它和mktime一样可以从右向左省略,任何省略的参数都会被设置成本地日期的当前值。
示例如下:
<?php echo gmmktime(); //没有设置参数, 则默认取得当前GMT时间 ?>
输出结果:
由上述示例看出,当所有参数省略后,参数都被设置成了当前时区当前时间的参数,因此输出了当前时间的UNIX时间戳。
<?php echo gmmktime(0,0,0,10,21,2021); ?>
输出结果:
由上述示例能够看出,通过gmmktime()函数可以获取指定时间的UNIX时间戳。
-
microtime()
函数
microtime()函数可以返回当前UNIX时间戳的微秒数,它的语法如下:
microtime ($get_as_float )
示例如下:
<?php echo microtime(); ?>
输出结果:
由上述示例看出,通过microtime函数可以输出微秒数,但是输出结果的格式是,前面的表示当前UNIX时间戳的微秒部分,后面的表示为当前UNIX时间戳的秒数。
虽然通过microtime函数能够显示了更细腻的微秒数,但是看着实在不怎么好看,那有没有办法能够直观地看到微秒数呢?
我们可以通过函数后面的参数设置,将microtime函数后面的参数设置为true,那么就会返回一个浮点型的字符串来表示时间。
示例如下:
<?php echo microtime(true); //返回一个浮点型字符串表示时间 ?>
输出结果:
由上述示例能够看出,通过函数后面参数的设置,可以更直观的返回当前的时间。
-
getdate()
函数
我们前面介绍了这么多的函数都能够获取当前的时间或者指定的时间的UNIX时间戳,getdate函数就比较厉害了,他可以取得日期时间信息。它的语法格式如下:
array getdate ([ int $timestamp = time() ] )
简单来说,getdate函数能够根据参数的信息返回一个关联数组,这个数组中包含了很多元素,下面给大家列举一下:
-
seconds
—表示秒的数字 -
minutes
—表示分钟的数字 -
hours
—表示小时的数字 -
mday
—表示月份中第几天的数字 -
wday
—星期中第几天的数字 -
mon
—表示月份中第几个月的数字 -
year
—用4 位数字表示的完整年份 -
yday
—表示一年中第几天的数字 -
weekday
—表示星期几的英文 -
month
—表示月份的英文 -
0
—表示自从 UNIX 纪元开始至今的秒数
示例如下:
<?php echo "<pre>"; var_dump(getdate()); ?>
输出结果:
由上述示例中可以看出,通过getdate函数,返回的数组中包含了当前时间的相关信息。
大家如果感兴趣的话,可以点击《PHP视频教程》进行