Maison  >  Article  >  développement back-end  >  php生成高精度时间的例子

php生成高精度时间的例子

WBOY
WBOYoriginal
2016-07-25 09:10:111124parcourir
  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()。



Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn