zoukankan      html  css  js  c++  java
  • PHP 时间函数time、date和microtime的区别

    一、time、date 和 microtime函数

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

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

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

    二、三者的区别

           1.time() 函数

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

    <?php 
      echo time();
    --------------------
    输出结果
    1546501413

           2.date() 函数

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

    <?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 的和,保留四位小数,如下:

    <?php 
      list($msec, $sec) = explode(" ", microtime());
      echo $msec;
      echo "<br />";
      echo $sec;
    ---------------------------------------
    输出结果
    
    0.30716500<br />1546501702
    

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

    的运行时间等

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

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

    <?php
       
       function get_subtraction() {
          $t1 = microtime(true);
          $t2 = microtime(true);
       
          echo (($t2 - $t1)*1000).'ms';
       } 
     get_subtraction();
    
    ---------------------------------------
    
    输出结果:
    0.0019073486328125ms
    

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

    <?php
      2 
      3 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 时间戳和微秒数(用秒的小数表示)浮点数表示,常用来计算代码执行时间

    <?php
      2 
      3 function microtime_float() {
      4    list($msec, $sec) = explode(" ", microtime());
      5    echo (float)$msec + (float)$sec;
      6 }
      7 
      8 microtime_float();
    

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

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

     <?php
      2 
      3 list($msec, $sec) = explode(" ", microtime());
      4 $msectime = (float)sprintf("%.0f", (floatval($msec) + floatval($sec)) * 1000);
      5 
      6 echo $mesctime;
    
    ------------------------------------
    
    输出结果:
    
    1546509149102

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

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

           

     

  • 相关阅读:
    The usage of Markdown---杂谈:缩进/换行/分割线/注释/文字颜色
    insert into,insert into select,replace into,replace into select,insert ignore into,on duplicate key update
    mysql使用指南
    openssl使用
    黑名单
    zsh+iTerm2+ powerline+oh-my-zsh+ agnoster
    mac安装brew软件管理工具
    mysql性能优化
    numactl
    vscode
  • 原文地址:https://www.cnblogs.com/leeyongbard/p/10214201.html
Copyright © 2011-2022 走看看