time、date 和 microtime函数区别

一、time、date 和 microtime函数

       time----返回当前的 Unix 时间戳

       date----格式化一个本地时间/日期

       microtime----返回当前的 Unix 时间戳和微秒数

二、三者的区别

       1.time() 函数

        time() 函数返回的是从 Unix 纪元(格林威治1970年1月1日00:00:00)到当前时间的秒数,如下

1

2

3

4

5

<?php

  echo time();

--------------------

输出结果

1546501413

       2.date() 函数

       date() 返回将整数 timestamp 按照给定的格式字符串而产生的字符串,如下

1

2

3

4

5

6

<?php

   echo date("Y-m-d H:i:s",time());

---------------------------------------

输出结果

2019-01-03 07:44:57

       3.microtime() 函数

       microtime() 返回当前 Unix 时间戳和微秒数。如果调用时不带可选参数,该函数以 "msec sec" 的格式返回一个字符串,其中

sec 是从 Unix 纪元(格林威治1970年1月1日00:00:00)起到当前时间的秒数,msec 是微秒部分这一点需要注意下有的文章上写

的是毫秒可以参考 PHP 手册,字符串的两部分都是以秒为单位返回的。如果可选参数为 true,microtime(true),返回的值是  sec

+ msec 的和,保留四位小数,如下:

1

2

3

4

5

6

7

8

9

<?php

  list($msec$sec) = explode(" ", microtime());

  echo $msec;

  echo "<br />";

  echo $sec;

---------------------------------------

输出结果

0.30716500<br />1546501702

   time() 函数多用于记录当前时间,date() 函数用于格式化一个时间戳,microtime() 函数可用于计算时间差,比如常用统计一个程序

的运行时间等

        4.通过 microtime() 函数获取毫秒时间戳

        #Example 01  获取时间差,毫秒级

1

2

3

4

5

6

7

8

9

10

11

12

13

14

<?php

    

   function get_subtraction() {

      $t1 = microtime(true);

      $t2 = microtime(true);

    

      echo (($t2 $t1)*1000).'ms';

   }

 get_subtraction();

---------------------------------------

输出结果:

0.0019073486328125ms

   #Example 02 返回时间戳的毫秒部分

1

2

3

4

5

6

7

8

9

10

11

12

13

<?php

  2

  function get_millisecond() {

  4    list($msec$sec) = explode(" ", microtime());

  5    $msec round($msec * 1000);

  6    echo $msec;

  7 }

  8

  9 get_millisecond();

------------------------------------------------------------

输出结果:

535

  #Example 03 返回当前 Unix 时间戳和微秒数(用秒的小数表示)浮点数表示,常用来计算代码执行时间

1

2

3

4

5

6

7

8

<?php

  2

  function microtime_float() {

  4    list($msec$sec) = explode(" ", microtime());

  5    echo (float)$msec + (float)$sec;

  6 }

  7

  8 microtime_float();

  上面这段代码的结果和 microtime(true) 相等

        #Example 04 获取毫秒级别时间戳 

1

2

3

4

5

6

7

8

9

10

11

12

<?php

  2

  3 list($msec$sec) = explode(" ", microtime());

  $msectime = (float)sprintf("%.0f", (floatval($msec) + floatval($sec)) * 1000);

  5

  echo $mesctime;

------------------------------------

输出结果:

1546509149102

floatval() 函数获取变量的浮点值,doubleval() 函数是它的别名,具体使用可以参考 PHP 手册

sprintf("%.0f",$num) 输出不包含小数部分的浮点数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值