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: Sat, 07 Jan 2012

view this page in

time_sleep_until

(PHP 5 >= 5.1.0)

time_sleep_untilLässt das Skript bis zur angegebenen Zeit schlafen

Beschreibung

bool time_sleep_until ( float $timestamp )

Lässt das Skript bis zum angegebenen timestamp schlafen.

Parameter-Liste

timestamp

Der Unix-Timestamp, zu dem die Ausführung des Skripts wieder aufgenommen werden soll.

Rückgabewerte

Gibt bei Erfolg TRUE zurück. Im Fehlerfall wird FALSE zurückgegeben.

Changelog

Version Beschreibung
5.3.0 Diese Funktion ist nun auch unter Windows verfügbar.

Fehler/Exceptions

Die Funktion generiert eine E_WARNING-Meldung, wenn der angegebene timestamp in der Vergangenheit liegt.

Beispiele

Beispiel #1 Ein time_sleep_until()-Beispiel

<?php

// Gibt false zurück und generiert eine Warnung
var_dump(time_sleep_until(time()-1));

// funktioniert evtl. nur auf schnellen Rechnern, schläft für bis zu 0.2 Sekunden
var_dump(time_sleep_until(microtime(true)+0.2));

?>

Anmerkungen

Hinweis: Alle eingetroffenen Signale werden erst ausgeliefert, wenn die Ausführung fortgesetzt wird.

Siehe auch

  • sleep() - Programmverzögerung
  • usleep() - Programm-Verzögerung in Mikrosekunden
  • time_nanosleep() - Verzögert die Ausführung um die gegebene Anzahl Sekunden und Nanosekunden
  • set_time_limit() - Legt die maximale Ausführungszeit fest



uniqid> <time_nanosleep
[edit] Last updated: Sat, 07 Jan 2012
 
add a note add a note User Contributed Notes time_sleep_until
purdue at nc dot rr dot com 05-May-2011 11: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 09: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 06: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 07: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 11: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