* @brief Time tools */ /* Query a time server (C) 1999-09-29, Ralf D. Kloth (QRQ.software) */ if(!function_exists("query_time_server")) { function query_time_server($timeserver, $socket) { // parameters: server, socket, error code, error text, timeout $fp = fsockopen($timeserver,$socket,$err,$errstr,5); if($fp) { fputs($fp, "\n"); $timevalue = fread($fp, 49); fclose($fp); // close the connection } else { $timevalue = " "; } $ret = array(); $ret[] = $timevalue; $ret[] = $err; // error code $ret[] = $errstr; // error text return $ret; } } if(!function_exists("get_server_time")) { function get_server_time($timeserver="time.bora.net", $dateformat="Y-m-d h:i:s") { $datetime = false; $timercvd = query_time_server($timeserver, 37); //if no error from query_time_server if(!$timercvd[1]) { $timevalue = bin2hex($timercvd[0]); $timevalue = abs(HexDec('7fffffff') - HexDec($timevalue) - HexDec('7fffffff')); $tmestamp = $timevalue - 2208988800; # convert to UNIX epoch time stamp $datum = date("Y-m-d (D) H:i:s",$tmestamp - date("Z",$tmestamp)); /* incl time zone offset */ $doy = (date("z",$tmestamp)+1); //echo "Time check from time server ",$timeserver," : [",$timevalue,"]"; //echo " (seconds since 1900-01-01 00:00.00).
\n"; //echo "The current date and universal time is ",$datum," UTC. "; //echo "It is day ",$doy," of this year.
\n"; //echo "The unix epoch time stamp is $tmestamp.
\n"; $datetime = date($dateformat, $tmestamp); } else { //echo "Unfortunately, the time server $timeserver could not be reached at this time. "; //echo "$timercvd[1] $timercvd[2].
\n"; set_error($timercvd[1] . " " . $timercvd[2]); show_errors(); } return $datetime; } }