需要在桌面软件中获取当前时间,为了避免客户修改本地时间,所以需要获取网络的当前时间
废话不多说贴上代码
我们获取的是中科院国家授时中心的时间
$weeks = array( 'Mon'=>'星期一', 'Tue'=>'星期二', 'Wed'=>'星期三', 'Thu'=>'星期四', 'Fri'=>'星期五', 'Sat'=>'星期六', 'Sun'=>'星期日' ); $server = "www.ntsc.ac.cn"; //中科院国家授时中心 $date = "HEAD/HTTP/1.1\r\n"; //请求方式 版本 $date .= "Host:$server\r\n"; //域名 $date .= "Connection:Close\r\n\r\n"; //断开连接 $fp = fsockopen($server,80); // 打开一个网络连接 fputs($fp,$date); //函数写入文件 fwrite()别名 $resp = " "; while($fp && !feof($fp)) //输出文本中所有的行,直到文件结束为止 $resp .= fread($fp,1024); //函数读取文件,在文件中读取1024字节 preg_match('/^Date:(.*)$/mi',$resp,$matches);//第一个参数是正则表达式、第二个参数是 需要匹配检索的对象、第三个参数是存储匹配结果的数组 $w = explode(',',$matches[1]); //分割成数组 $week = $weeks[trim($w[0])]; //移除字符串两侧的字符 $time = date('Y-m-d H:i:s',strtotime($matches[1]));//将数组转成unix时间戳 然后格式化时间戳 echo $time.' '.$week;