[PHP] W jaki sposób pobrać i wyświetlić czas z atomowego wzorca czasu ?

przez | 15 października, 2013

Aby pobrać atomowy wzorzec czasu musimy połączyć się z serwerem time-a.nist.gov, który zwróci nam binarny ciąg będący wzorcem czasu, następnie ciąg ten należy prze konwertować na UNIX-owy znacznik czasu, który można wykorzystać w funkcji date.

//nawiązujemy połączenie z serwerem
$connect = fsockopen('time-a.nist.gov', 37);

//sprawdzamy czy nawiązanie połączenia się powiodło
if($connect) 
{
    fputs($connect, "\n");

    //pobieramy przesłany wzorzec
    $wzorzec = fread($connect, 128);

    //zamykamy połączenie z serwerem
    fclose($connect);
}

//konwertujemy binarny zapis na UNIX-owy znacznik czasu
$wzorzec = abs(hexdec('7fffffff') - 
               hexdec(bin2hex($wzorzec)) - 
               hexdec('7fffffff')) - 2208988800;

//wyświetlamy aktualny czas
echo date("Y-m-d H:i:s", $wzorzec);

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *