Heim  >  Artikel  >  Backend-Entwicklung  >  php生成高精度时间的例子

php生成高精度时间的例子

WBOY
WBOYOriginal
2016-07-25 09:10:111127Durchsuche
  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()。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn