下面我们一起来看看php date()和sql FROM_UNIXTIME() 的效率比较吧,到底是那个的性能要好一些呢,一起看实例.,在php中,将int型的时间戳转换为日期时间,有两种方法,一种是用我们熟悉的函数date("Y-m-d H:i",time())来转换,还有一种是在sql中用 FROM_UNIXTIME(add_time, "%Y-%m-%d %H:%m") 转换,平时用的不多,估计很多人都还不知道吧.,为了了解他们之间的效率和区别,我做了一个实例,先建了一张表,只添加了两个字段,一个是自增长的id,一个是int型的时间,添加两条数据后,再用自我复制语句 insert into t1 (add_time) select add_time from t1 将表迅速的复制到10万多条数据,用于测试.,程序很简单,就是比较在mysql中转换和在php中转换执行时间比较.,每块代码我执行了很多遍,我从中取出的一个比较适中的时间,现在从下图可以很明显的看出在数据库中用 FROM_UNIXTIME() 函数比 php 的 date() 函数要高效的多,不过我们不能忽略mysql数据库执行的开销,所以在不考虑数据库开销的情况下 FROM_UNIXTIME() 是快速的.,PHP源码参考,代码如下:,

下面我们一起来看看php date()和sql FROM_UNIXTIME() 的效率比较吧,到底是那个的性能要好一些呢,一起看实例.

在php中,将int型的时间戳转换为日期时间,有两种方法,一种是用我们熟悉的函数date("Y-m-d H:i",time())来转换,还有一种是在sql中用 FROM_UNIXTIME(add_time, "%Y-%m-%d %H:%m") 转换,平时用的不多,估计很多人都还不知道吧.

为了了解他们之间的效率和区别,我做了一个实例,先建了一张表,只添加了两个字段,一个是自增长的id,一个是int型的时间,添加两条数据后,再用自我复制语句 insert into t1 (add_time) select add_time from t1 将表迅速的复制到10万多条数据,用于测试.

程序很简单,就是比较在mysql中转换和在php中转换执行时间比较.

每块代码我执行了很多遍,我从中取出的一个比较适中的时间,现在从下图可以很明显的看出在数据库中用 FROM_UNIXTIME() 函数比 php 的 date() 函数要高效的多,不过我们不能忽略mysql数据库执行的开销,所以在不考虑数据库开销的情况下 FROM_UNIXTIME() 是快速的.

PHP源码参考,代码如下:

  1.  header("Content-type:text/html;charset=utf-8");   
  2.  //程序运行时间   
  3.  $starttime = explode(' ',microtime());   
  4.    
  5.    
  6.  /*········以下是代码区·········*/   
  7.  $link = mysql_connect("localhost","root","root");   
  8.  mysql_select_db("test");   
  9.  mysql_query("set names utf8");   
  10.  $sql = "select add_time from t1 limit 100000";   
  11.  $res = mysql_query($sql,$link);   
  12.  $num = mysql_num_rows($res);   
  13.  while($row = mysql_fetch_array($res)){   
  14.   //echo date("Y-m-d H:i",$row['add_time'])." | ";   
  15.  }   
  16.  /*········以上是代码区·········*/   
  17.    
  18.    
  19.  //程序运行时间   
  20.  $endtime = explode(' ',microtime());   
  21.  $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);   
  22.  $thistime = round($thistime,3);   
  23.  echo '
    本次通过 PHP 中 
    date("Y-m-d H:i",$row["add_time"]) 转换。
     转换本次转换 '.
    $num.' 条数据。
    本次执行耗时:'.
    $thistime.' 秒。';   
  24.    
  25.    
  26.  //--------------------------------------------------------   
  27.  //--------------------------------------------------------   
  28.  //程序运行时间   
  29.  $starttime = explode(' ',microtime());   
  30.    
  31.    
  32.  /*········以下是代码区·········*/   
  33.  $sql = "select add_time from t1 limit 100000";   
  34.  $res = mysql_query($sql,$link);   
  35.  $num = mysql_num_rows($res);   
  36.  while($row = mysql_fetch_array($res)){   
  37.   echo $row['add_time']." | ";   
  38.  }   
  39.  /*········以上是代码区·········*/   
  40.    
  41.    
  42.  //程序运行时间   
  43.  $endtime = explode(' ',microtime());   
  44.  $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);   
  45.  $thistime = round($thistime,3);   
  46.  echo '
    本次直接输出,没任何转换
    本次执行耗时:'.
    $thistime.' 秒。';   
  47.    
  48.    
  49.  //--------------------------------------------------------   
  50.  //--------------------------------------------------------   
  51.  //程序运行时间   
  52.  $starttime = explode(' ',microtime());   
  53.    
  54.    
  55.  /*········以下是代码区·········*/   
  56.  $sql = "select FROM_UNIXTIME( add_time, '%Y-%m-%d %H:%m' ) as add_time from t1 limit 100000";   
  57.  $res = mysql_query($sql,$link);   
  58.  $num = mysql_num_rows($res);   
  59.  while($row = mysql_fetch_array($res)){   
  60.   //echo $row['add_time']." | ";   
  61.  }   
  62.  /*········以上是代码区·········*/   
  63. //phpfensi.com   
  64.  //程序运行时间   
  65.  $endtime = explode(' ',microtime());   
  66.  $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);   
  67.  $thistime = round($thistime,3);   
  68.  echo '
    本次通过 mysql 中 FROM_UNIXTIME( add_time, 
    "%Y-%m-%d %H:%m" ) 转换。
     转换本次转换 '.
    $num.' 条数据。
    本次执行耗时:'.
    $thistime.' 秒。';   
  69. ?>  

,

下面我们一起来看看php date()和sql FROM_UNIXTIME() 的效率比较吧,到底是那个的性能要好一些呢,一起看实例.

在php中,将int型的时间戳转换为日期时间,有两种方法,一种是用我们熟悉的函数date("Y-m-d H:i",time())来转换,还有一种是在sql中用 FROM_UNIXTIME(add_time, "%Y-%m-%d %H:%m") 转换,平时用的不多,估计很多人都还不知道吧.

为了了解他们之间的效率和区别,我做了一个实例,先建了一张表,只添加了两个字段,一个是自增长的id,一个是int型的时间,添加两条数据后,再用自我复制语句 insert into t1 (add_time) select add_time from t1 将表迅速的复制到10万多条数据,用于测试.

程序很简单,就是比较在mysql中转换和在php中转换执行时间比较.

每块代码我执行了很多遍,我从中取出的一个比较适中的时间,现在从下图可以很明显的看出在数据库中用 FROM_UNIXTIME() 函数比 php 的 date() 函数要高效的多,不过我们不能忽略mysql数据库执行的开销,所以在不考虑数据库开销的情况下 FROM_UNIXTIME() 是快速的.

PHP源码参考,代码如下:

  1.  header("Content-type:text/html;charset=utf-8");   
  2.  //程序运行时间   
  3.  $starttime = explode(' ',microtime());   
  4.    
  5.    
  6.  /*········以下是代码区·········*/   
  7.  $link = mysql_connect("localhost","root","root");   
  8.  mysql_select_db("test");   
  9.  mysql_query("set names utf8");   
  10.  $sql = "select add_time from t1 limit 100000";   
  11.  $res = mysql_query($sql,$link);   
  12.  $num = mysql_num_rows($res);   
  13.  while($row = mysql_fetch_array($res)){   
  14.   //echo date("Y-m-d H:i",$row['add_time'])." | ";   
  15.  }   
  16.  /*········以上是代码区·········*/   
  17.    
  18.    
  19.  //程序运行时间   
  20.  $endtime = explode(' ',microtime());   
  21.  $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);   
  22.  $thistime = round($thistime,3);   
  23.  echo '
    本次通过 PHP 中 
    date("Y-m-d H:i",$row["add_time"]) 转换。
     转换本次转换 '.
    $num.' 条数据。
    本次执行耗时:'.
    $thistime.' 秒。';   
  24.    
  25.    
  26.  //--------------------------------------------------------   
  27.  //--------------------------------------------------------   
  28.  //程序运行时间   
  29.  $starttime = explode(' ',microtime());   
  30.    
  31.    
  32.  /*········以下是代码区·········*/   
  33.  $sql = "select add_time from t1 limit 100000";   
  34.  $res = mysql_query($sql,$link);   
  35.  $num = mysql_num_rows($res);   
  36.  while($row = mysql_fetch_array($res)){   
  37.   echo $row['add_time']." | ";   
  38.  }   
  39.  /*········以上是代码区·········*/   
  40.    
  41.    
  42.  //程序运行时间   
  43.  $endtime = explode(' ',microtime());   
  44.  $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);   
  45.  $thistime = round($thistime,3);   
  46.  echo '
    本次直接输出,没任何转换
    本次执行耗时:'.
    $thistime.' 秒。';   
  47.    
  48.    
  49.  //--------------------------------------------------------   
  50.  //--------------------------------------------------------   
  51.  //程序运行时间   
  52.  $starttime = explode(' ',microtime());   
  53.    
  54.    
  55.  /*········以下是代码区·········*/   
  56.  $sql = "select FROM_UNIXTIME( add_time, '%Y-%m-%d %H:%m' ) as add_time from t1 limit 100000";   
  57.  $res = mysql_query($sql,$link);   
  58.  $num = mysql_num_rows($res);   
  59.  while($row = mysql_fetch_array($res)){   
  60.   //echo $row['add_time']." | ";   
  61.  }   
  62.  /*········以上是代码区·········*/   
  63. //phpfensi.com   
  64.  //程序运行时间   
  65.  $endtime = explode(' ',microtime());   
  66.  $thistime = $endtime[0]+$endtime[1]-($starttime[0]+$starttime[1]);   
  67.  $thistime = round($thistime,3);   
  68.  echo '
    本次通过 mysql 中 FROM_UNIXTIME( add_time, 
    "%Y-%m-%d %H:%m" ) 转换。
     转换本次转换 '.
    $num.' 条数据。
    本次执行耗时:'.
    $thistime.' 秒。';   
  69. ?>  
最后修改:2025 年 09 月 10 日
如果觉得我的文章对你有用,请随意夸赞