如何使用批处理命令,使本地计算机获取服务器时间
@echo off
::这个意思是获取1921681100时间
net time \\1921681100
::这个意思是同步1921681100时间
net time \\1921681100 /set
在窗体中建一个文本框和时间控件,可以在文本框中显示跳动的服务器时间
Private Sub Form_Load()
Timer1Interval = 300
End Sub
Private Sub Timer1_Timer()
Dim cnn As New ADODBConnection
Dim cmd As New ADODBCommand
Dim rst As New ADODBRecordset
Dim Sqlser_time
cnnConnectionString = "driver={SQL Server};" & _
"server=server;uid=sa;pwd=;database=master"
cnnOpen
cmdActiveConnection = cnn
cmdCommandText = "SELECT GETDATE() AS sys_Sqlser_time"
Set rst = cmdExecute
Sqlser_time = rst(0)
Text1Text = Sqlser_time
rstClose
cnnClose
End Sub
具体来说有这么几种思路吧:
轮询,就像你说的那样不间断的和服务器通信,比如每秒甚至更短就发起一次请求获取服务器时间,然后利用Ajax的readyState来确定从请求发起到收到回复过去的时间不会太长。
WebSocket,利用WebSocket来实时通信。
服务器当然不会蹦掉……而且如果你要做的是一个倒计时那情况就更简单了,比如说在倒计时结束之前服务器对这些请求都不回复,让请求TimeOut,只有在倒计时结束后才回复给客户端,这样就能节省流量。
而且现在有很多这种免费的时间API服务。这里: wwwtimeapiorg/ 就是一个。这个API会直接返回UTC字符串。如果担心服务器压力的话用这种服务就好了。
另外,很重要的一点要提醒你。不论是什么数据,不论是不是从客户端上提取出来的,只要是在客户端上处理的就必须默认这个数据不可靠。不论你怎么从服务器获取时间,你都要认为这个时间很有可能已经被动过了。如果是抽奖这样的任务的话必须全程在服务器上处理。客户端代码关于数据的功能只有两个:向用户显示数据,从用户提取数据。
网页前端是无法获取到服务器时间的,只有通过后台取值然后进行传递。 使用Ajax每秒获取服务器的时间并显示出来,但是服务器网络延迟较高,这样误差较大。
示例采用Head的方法处理,第一次页面加载时从服务器端获得时间,以这个时间为基准,客户端再用js每秒累加。
完整代理示例:
<html><head>
<title>html网页获取服务器的时间</title>
<script language="JavaScript" type="text/javascript">
<!--程序执行需要耗费时间,误差在2秒以下-->
var xmlHttp = false;
<!--获取服务器时间-->
try {
xmlHttp = new ActiveXObject("Msxml2XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("MicrosoftXMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
xmlHttpopen("GET", "
, false);
xmlHttpsetRequestHeader("Range", "bytes=-1");
xmlHttpsend(null);
severtime=new Date(xmlHttpgetResponseHeader("Date"));
<!--获取服务器日期-->
var year=severtimegetFullYear();
var month=severtimegetMonth()+1;
var date=severtimegetDate();
<!--获取服务器时间-->
var hour=severtimegetHours();
var minu=severtimegetMinutes();
var seco=severtimegetSeconds();
<!--格式化输出服务器时间-->
function getSeverTime(){
seco++;
if(seco==60){
minu+=1;
seco=0;
}
if(minu==60){
hour+=1;
minu=0;
}
if(hour==24){
date+=1;
hour=0;
}
<!--日期处理-->
if(month==1||month==3||month==5||month==7
||month==8||month==10||month==12)
{
if(date==32)
{
date=1;
month+=1;
}
}else if(month==4||month==6||month==9||month==11){
if(date==31){
date=1;
month+=1;
}
}else if(month==2){
if(year%4==0&&year%100!=0){<!--闰年处理-->
if(date==29){
date=1;
month+=1;
}
}else{
if(date==28){
date=1;
month+=1;
}
}
}
if(month==13){
year+=1;
month=1;
}
sseco=addZero(seco);
sminu=addZero(minu);
shour=addZero(hour);
sdate=addZero(date);
smonth=addZero(month);
syear=year;
innerdata="当前服务器时间:";
documentgetElementById("servertime")innerHTML=innerdata+syear+"-"+smonth+"-"+sdate+" "+shour+":"+sminu+":"+sseco;
setTimeout("getSeverTime()",1000);
setTimeout("getClientTime()",100);
}
function addZero(num) {
num=Mathfloor(num);
return ((num <= 9) ("0" + num) : num);
}
</script>
</head>
<body onLoad="getSeverTime();">
<p id="servertime"></p>
<p id="clienttime"></p>
<p id="xctime"></p>
</body>
</html>
扩展网页前端获取当前时间,调用date()函数即可。
示例代码:
<span id="cg"></span><script>setInterval("cginnerHTML=new Date()toLocaleString()",1000);</script>
Date dateAndTime = new Date() //Java获取服务器当前日期和时间
Systemoutprintln(dateAndTime toString());
程序集 窗口程序集1
子程序 _按钮1_被单击
局部变量 XML对象, 对象
局部变量 时间文本, 文本型
按钮1禁止 = 真
如果真 (XML对象创建 (“MSXML2XMLHTTP”, ) = 假)
如果真 (XML对象创建 (“MicrosoftXMLHTTP”, ) = 假)
返回 ()
如果真结束
如果真结束
XML对象方法 (“open”, 编辑框2内容, 编辑框1内容, 假)
XML对象方法 (“send”, )
时间文本 = XML对象读文本属性 (“getResponseHeader”, “Date”)
标签1标题 = “当前服务器时间为:” + 到文本 (时间格式化 (时间文本))
按钮1禁止 = 假
子程序 时间格式化, 日期时间型
参数 时间文本, 文本型
局部变量 临时数组, 文本型, , "0"
局部变量 临时变量, 文本型
局部变量 时间变量, 日期时间型
局部变量 临时时间, 日期时间型
局部变量 日, 文本型
局部变量 月, 文本型
局部变量 年, 文本型
局部变量 时, 文本型
局部变量 分, 文本型
局部变量 秒, 文本型
临时数组 = 分割文本 (时间文本, “, ”, )
临时变量 = 临时数组 [2]
临时变量 = 子文本替换 (临时变量, “ GMT”, , , , 真)
清除数组 (临时数组)
临时数组 = 分割文本 (临时变量, “ ”, )
日 = 临时数组 [1]
判断开始 (临时数组 [2] = “Jan”)
月 = “01”
判断 (临时数组 [2] = “Feb”)
月 = “02”
判断 (临时数组 [2] = “Mar”)
月 = “03”
判断 (临时数组 [2] = “Apr”)
月 = “04”
判断 (临时数组 [2] = “Mar”)
月 = “05”
判断 (临时数组 [2] = “Jun”)
月 = “06”
判断 (临时数组 [2] = “Jul”)
月 = “07”
判断 (临时数组 [2] = “Aug”)
月 = “08”
判断 (临时数组 [2] = “Sep”)
月 = “09”
判断 (临时数组 [2] = “Oct”)
月 = “10”
判断 (临时数组 [2] = “Nov”)
月 = “11”
判断 (临时数组 [2] = “Dec”)
月 = “12”
默认
判断结束
年 = 临时数组 [3]
临时变量 = 临时数组 [4]
清除数组 (临时数组)
临时数组 = 分割文本 (临时变量, “:”, )
时 = 到文本 (到整数 (临时数组 [1]))
分 = 临时数组 [2]
秒 = 临时数组 [3]
时间变量 = 到时间 (年 + “/” + 月 + “/” + 日 + “/” + 时 + “/” + 分 + “/” + 秒)
时间变量 = 增减时间 (时间变量, #小时, 8) ' 转换为北京时间
返回 (时间变量)
如果想返回服务器日期,时间包括秒,请用<%=now()%>
这里附带下:<%=date()%>显示日期 例如:2006-6-30
<%=Time()%>显示时间 例如:21:12:12
0条评论