首页  >  文章  >  后端开发  >  php生成高精度时间的例子

php生成高精度时间的例子

WBOY
WBOY原创
2016-07-25 09:10:111112浏览
  1. $start = microtime(true);
  2. for($i = 0; $i preg_match('/age=\d+/',$_SERVER['QUERY_STRING']);
  3. }
  4. $end = microtime(true);
  5. ?>
复制代码

php 5.0.0中增加了对在microtime()中使用可选参数的支持。如果不带参数,或者带有不能转换成true的参数,或者在php的早期版本中,microtime()会返回一个Unix纪元起所经过时间的微秒部分,一个空格和自纪元起所经过的秒数。例如,返回值"0.41644100 1026683258" 意味着自纪元起经过了"1026683258.41644100秒"时间。

包含微秒的时间值对于生成唯一的ID非常有用。只要一个进程不会在一微秒内同时生成一个以上的ID,就能保证用包含微秒的时间值与当前进程的ID组成一个唯一的ID值。

再来看一个例子:使用microtime()(返回的字符串格式)生成了这样一个ID。

例2:用microtime()生成一个ID

  1. list($microseconds,$seconds) = explode(' ',microtime());
  2. $id = $seconds.$microseconds.getmypid();
  3. ?>
复制代码

注意: 例2在多线程的系统中并不十分可靠,因为存一个非难(但极小)的概率,同一个进程的两个线程会在同一微秒内调用microtime()。



声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn