购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

7.2 获取当前时间

在日期和时间函数中,UNIX时间戳的获取非常重要,时间戳是一个字符序列,是指格林尼治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。下面介绍几个获取当前时间的函数。

1.gmmktime

gmmktime()函数可取得GMT日期的UNIX时间戳。语法如下:


     int gmmktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )

说明: 该函数的参数可以从右到左依次空着,空着的参数会被设为相应的当前GMT值。

使用示例如下:


     <?
     echo gmmktime();      // 没有设置参数,则默认取得当前GMT时间
     echo gmmktime(0,45,3,7,7,2016);
                     //设置参数表示GMT时间2016年7月7日0点45分3秒
     ?>

执行以上程序的打印结果为:


     1467909956   1467852303

2.mktime

mktime()也可取得一个日期的UNIX时间戳。语法如下:


     int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )

说明: 该函数根据给出的参数返回UNIX时间戳。时间戳是一个长整数,包含了从UNIX纪元到给定时间的秒数。

和gmmktime函数一样,该函数的参数也可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。

使用示例如下:


     <?
     echo mktime();               // 没有设置参数则默认取得当前GMT时间
     echo mktime(0,45,3,7,7,2016); // 设置参数表示GMT时间2016年7月7日0点45分3秒
     ?>

执行以上程序的打印结果为:


     1467910465 1467852303

3.microtime

microtime可获得当前UNIX时间戳和微秒数。语法如下:


     mixed microtime ([ bool $get_as_float ] )

说明: 如果设置get_as_float参数值为true,microtime()将返回一个浮点数;若不带参数,则返回一个“msec sec”格式的字符串,其中sec是自UNIX纪元起到现在的秒数,msec是微秒部分。字符串的两部分都是以秒为单位返回的。

使用示例如下:


     <?
     echo microtime();            // 返回 msec sec 格式字符串表示时间
     echo "<br/>";
     echo microtime(true);              // 返回一个浮点型字符串表示时间
     ?>

执行以上程序的打印结果如下:


     0.40474900 1467910862
     1467910862.4048

4.time

time函数可返回当前的UNIX时间戳。语法如下:


     int time ( void )

time函数的语法比较简单。使用示例如下:


     <?
     echo time();
     ?>

执行以上程序的打印结果为:


     1467911104

5.getdate

getdate()可取得日期时间信息。语法如下:


    array getdate ([ int $timestamp = time() ] )

该函数返回一个根据timestamp得出的包含有日期信息的关联数组array。如果没有给出时间戳,则认为是当前本地时间(此时和time()函数取值相同)。其返回的关联数组中的键名单元如表7-1所示。

表7-1 getdate()函数返回关联数组键名

getdate()函数的使用示例如下:


     <?
     echo "<pre>";
     var_dump(getdate());
     ?>

执行以上程序的打印结果如下: +7KRxgIzyzrQXl5t+HW+0penKwbCE4dQkLQjFIFt2/0ttphDJ0+SpunC+fE9My0X


     array(11) {
       ["seconds"]=>
       int(57)
       ["minutes"]=>
       int(18)
       ["hours"]=>
       int(17)
       ["mday"]=>
       int(7)
       ["wday"]=>
       int(4)
       ["mon"]=>
       int(7)
       ["year"]=>
       int(2016)
       ["yday"]=>
       int(188)
       ["weekday"]=>
       string(8) "Thursday"
       ["month"]=>
       string(4) "July"
       [0]=>
       int(1467911937)
     }

点击中间区域
呼出菜单
上一章
目录
下一章
×