From fdedc176a97a9b7b6feba2e6fb4b58a01e8abf3a Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Wed, 26 Sep 2018 19:22:10 +0900 Subject: [PATCH] Create timetool.php --- helper/timetool.php | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 helper/timetool.php diff --git a/helper/timetool.php b/helper/timetool.php new file mode 100644 index 0000000..7096292 --- /dev/null +++ b/helper/timetool.php @@ -0,0 +1,60 @@ + + * @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; + } +}