gettimeofday

(PHP 3 >= 3.0.7, PHP 4, PHP 5)

gettimeofday -- Возвращает текущее время

Описание

array gettimeofday ( void )

Эта функция является интерфейсом к системному вызову gettimeofday(2). Она возвращает ассоциативный массив, содержащий информацию, полученную от системной функции.

  • "sec" - секунды

  • "usec" - микросекунды

  • "minuteswest" - смещение к западу от Гринвича, в минутах

  • "dsttime" - тип коррекции летнего времени

Пример 1. Пример использования функции gettimeofday()

<?php
print_r
(gettimeofday());
?>

Вывод будет выглядеть так:

Array
(
    [sec] => 1073504408
    [usec] => 238215
    [minuteswest] => 0
    [dsttime] => 1
)



gettimeofday
ricky dot blankenaufulland at leonardo dot de
27-Feb-2006 02:31
I was expecting gettimeofday would give me the number of seconds of the day. But if you access the "sec" index of the array it is identical to time() (so, unix timestamp, seconds since 1970).

So for others have to help them quicker, to get the number of seconds of the day, try this:
<?php
$t
= time() % 86400;
?>
lucas dot karisny at linuxmail dot org
13-Feb-2005 06:26
A small improvement on getTimer.  Using vsprintf instead of sprintf there is no need to assign the array:

<?php
function utime()
{
  return (float) (
vsprintf('%d.%06d', gettimeofday()));
}
?>

In a test on my machine getTimer took 0.037519 seconds to run through 1000 iterations versus 0.027912 seconds for utime.  In total, utime runs about 25% quicker.  The use is negligible in an actual benchmarking scenario, but this could provide a slightly more accurate estimate.  Of course the time it takes to run the function could always be stored at the start and subtracted from your total value each time it is run.
beidson at calpoly dot edu
13-Sep-2000 11:21
Since USLEEP doesn't work under windows, you need to come up with your own fix. gettimeofday() can access useconds on a windows box, so this little function using gettimeofday() will do the trick.

function wait($usecs){
 $temp=gettimeofday();
 $start=(int)$temp["usec"];
 while(1){
  $temp=gettimeofday();
  $stop=(int)$temp["usec"];
  if ($stop-$start >= $usecs) break;
 }
}

The smallest amount of time it seems to work with is around 200usecs, but if you wait() anything higher than 200usecs it's pretty close.
middleto at pilot dot msu dot edu
12-Aug-1999 07:49
The types of DST correction (from sys/time.h on a Linux system):
 0    Not on DST
 1    USA DST
 2    Austrailian DST
 3    Western European DST
 4    Middle European DST
 5    Eastern European DST
 6    Canada DST
 7    Great Britain and Eire DST
 8    Rumania DST
 9    Turkey
10    Australian DST (with shift in 1986)

<getdategmdate>
 Last updated: Tue, 15 Nov 2005