php怎么添加时间检索,通过PHP从NTP服务器检索时间

这是一个完整的工作代码:

error_reporting(E_ALL ^ E_NOTICE);

ini_set("display_errors", 1);

date_default_timezone_set("America/Argentina/Buenos_Aires");

/* Query a time server (C) 1999-09-29, Ralf D. Kloth (QRQ.software) */

function query_time_server ($timeserver, $socket)

{

$fp = fsockopen($timeserver,$socket,$err,$errstr,5);

# parameters: server, socket, error code, error text, timeout

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);

} # function query_time_server

$timeserver = "ntp.pads.ufrj.br";

$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";

echo date("d/m/Y H:i:s", $tmestamp);

}

else

{

echo "Unfortunately, the time server $timeserver could not be reached at this time. ";

echo "$timercvd[1] $timercvd[2].
\n";

}

?>

更多信息在这link

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值