downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

uniqid> <time_nanosleep
[edit] Last updated: Fri, 23 Mar 2012

view this page in

time_sleep_until

(PHP 5 >= 5.1.0)

time_sleep_until Make the script sleep until the specified time

Opis

bool time_sleep_until ( float $timestamp )

Makes the script sleep until the specified timestamp.

Parametry

timestamp

The timestamp when the script should wake.

Zwracane wartości

Zwraca TRUE w przypadku powodzenia, FALSE w przypadku błędu.

Rejestr zmian

Wersja Opis
5.3.0 This function is now available on Windows platforms.

Błędy/Wyjątki

If the specified timestamp is in the past, this function will generate a E_WARNING.

Przykłady

Przykład #1 A time_sleep_until() example

<?php

//returns false and generates a warning
var_dump(time_sleep_until(time()-1));

// may only work on faster computers, will sleep up to 0.2 seconds
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Notatki

Informacja: All signals will be delivered after the script wakes up.

Zobacz też:



uniqid> <time_nanosleep
[edit] Last updated: Fri, 23 Mar 2012
 
add a note add a note User Contributed Notes time_sleep_until
purdue at nc dot rr dot com 05-May-2011 05:04
At least on my Windows machine, the time_sleep_until function appears to calculate the number of microseconds between now and the sleep-until timestamp, and it appears to use unsigned 32-bit math in this calculation.  This roundoff leads to a maximum sleep time of just under 4295 seconds (1 hour, 11 minutes, 35 seconds).  To get longer sleep times, while still using time_sleep_until to minimize processor overhead, the following loop may be some help to you:

<?php

$sleepuntil
= strtotime("tuesday 3pm");

while (
time() < $sleepuntil)
  
time_sleep_until($sleepuntil);

// proceed with dated processing

?>

Of course, one could use something like "cron" instead, to avoid the script doing the extended sleep.  Also note that time_nanosleep appears to do similar math, but it is somewhat more intuitive that the seconds parameter has an upper limit on what it can be.  Still, both functions might report a warning when waking up prematurely due to roundoff.
f dot schima at ccgmbh dot de 15-Feb-2010 02:32
Remember when using usleep() as a replacement for time_sleep_until() that usleep() can be interrupted by signals, time_sleep_until() not.
pasha 03-Sep-2009 12:11
To ensure that usleep() is called with the same argument as the one being tested - a positive number:

<?php
if (!function_exists('time_sleep_until')) {
   function
time_sleep_until($future) {
      
$sleep = ($future - microtime(1))*1000000;
       if (
$sleep<=0) {
          
trigger_error("Time in past", E_USER_WARNING);
           return
false;
       }

      
usleep($sleep);
       return
true;
   }
}
?>
roberto at spadim dot com dot br 16-Dec-2006 12:05
better implementation
<?php
if (!function_exists('time_sleep_until')) {
   function
time_sleep_until($future) {
       if (
$future < time()) {
          
trigger_error("Time in past", E_USER_WARNING);
           return
false;
       }

      
usleep(($future - microtime(1))*1000000);
       return
true;
   }
}
?>
ssnoyes at hotmail dot com 25-Nov-2005 04:58
Implementation for < 5.1 or Windows users

<?php
if (!function_exists('time_sleep_until')) {
    function
time_sleep_until($future) {
        if (
$future < time()) {
           
trigger_error("Time in past", E_USER_WARNING);
            return
false;
        }

       
sleep($future - time());
        return
true;
    }
}
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites