TC官方合作论坛

标题: 获取网络时间不准确的问题 [打印本页]

作者: 学习学习吧    时间: 2015-6-1 08:36
标题: 获取网络时间不准确的问题
新手小白
代码:    t=获取网络时间()
              调试输出(t)
结果输出的网络时间和网上查看的准确网络时间有2S左右的误差。请问这个问题有师父可以解决吗?
还有就是这个误差每天都不同,前两天看误差应该还小于1S。请问这是怎么回事?
作者: DMAX    时间: 2015-6-1 08:42
网络延迟的原因吧。。。。。。
作者: 学习学习吧    时间: 2015-6-1 08:51
DMAX 发表于 2015-6-1 08:42
网络延迟的原因吧。。。。。。

延迟的话应该没2S这么多吧?而且师父,我网络情况非常良好啊。。。
还有就是每天误差都不同,师父,有办法解决吗?
作者: a837198    时间: 2015-6-1 08:51
你对时间要求这么高????????????
作者: 学习学习吧    时间: 2015-6-1 08:53
a837198 发表于 2015-6-1 08:51
你对时间要求这么高????????????

对啊,大神,有什么办法吗?真心求教
作者: jimye0526    时间: 2015-6-1 09:27
网络坑定会有误差的,自己写获取网络时间,来源站都自己设置,网络时间说白就是服务器的时间,服务器不准,获取当然更不准了
作者: _简简单单_    时间: 2015-6-1 09:30
是你网速的问题吗?我这里获取蛮准确的。。。。你可以对比网上的北京时间对比一下。
作者: 学习学习吧    时间: 2015-6-1 09:52
你的代码跟我一样吗?我第一天也挺准的,可后两天就不行了,我也是用百度的北京时间比较的
作者: 学习学习吧    时间: 2015-6-1 09:55
jimye0526 发表于 2015-6-1 09:27
网络坑定会有误差的,自己写获取网络时间,来源站都自己设置,网络时间说白就是服务器的时间,服务器不准, ...

嗯,谢谢你的解答,那请问我能自己设置来源网站吗?代码怎么实现呢?还有就是来源网站用哪个比较好呢?
作者: 学习学习吧    时间: 2015-6-1 09:56
_简简单单_ 发表于 2015-6-1 09:30
是你网速的问题吗?我这里获取蛮准确的。。。。你可以对比网上的北京时间对比一下。 ...

你的代码跟我一样吗?我第一天也挺准的,可后两天就不行了,我也是用百度的北京时间比较的
作者: _简简单单_    时间: 2015-6-1 10:01
学习学习吧 发表于 2015-6-1 09:56
你的代码跟我一样吗?我第一天也挺准的,可后两天就不行了,我也是用百度的北京时间比较的 ...

嗯,和你一样的代码,,我刚测了,蛮准的,
作者: 学习学习吧    时间: 2015-6-1 10:56
_简简单单_ 发表于 2015-6-1 10:01
嗯,和你一样的代码,,我刚测了,蛮准的,

兄弟,你能从百度搜索出的网页上获取网络时间吗?这样的话,好像可以最大限度减小误差啊。就比如你直接从网上的那个北京时间那里那数据,我们这个代码,我都不知道从哪里拿来的数据。。
作者: 这论坛不错    时间: 2015-6-1 11:21
学习学习吧 发表于 2015-6-1 10:56
兄弟,你能从百度搜索出的网页上获取网络时间吗?这样的话,好像可以最大限度减小误差啊。就比如你直接从 ...

功能 获取百度时间()
    变量 时间
   
    变量 xmlHttp = com("Microsoft.XMLHTTP")
    xmlHttp.open("GET", "http://open.baidu.com/", "False", "百度账号", "百度密码")
    xmlHttp.send("getdatetime")
    变量 DateTime=xmlHttp.getResp**eHeader("Date")
    如果(字符串长度(DateTime)>0)
        变量 Year = strsub(DateTime,12,16)
        变量 Month = strsub(DateTime,8,11)
        变量 Day = strsub(DateTime,5,7)
        变量 Time = strsub(DateTime,17,25)
        变量 Week = strsub(DateTime,0,3)
        select(Month)
            case "Jan"
            Month = "01"
            case "Feb"
            Month = "02"
            case "Mar"
            Month = "03"
            case "Apr"
            Month = "04"
            case "May"
            Month = "05"
            case "Jun"
            Month = "06"
            case "Jul"
            Month = "07"
            case "Aug"
            Month = "08"
            case "Sep"
            Month = "09"
            case "Oct"
            Month = "10"
            case "Nov"
            Month = "11"
            case "Dec"
            Month = "12"
            变量 Mpnth = "false"
        结束
        DateTime=timeadd("h",8,Year&"/"&Month&"/"&Day&" "&Time)
        xmlHttp = null
        变量 ArrNetTime = strreplace(strreplace(strreplace(DateTime,"/","|")," ","|"),":","|")
        字符串分割(ArrNetTime,"|",ArrNetTime)
        Year = ArrNetTime[0]
        Month = ArrNetTime[1]
        Day = ArrNetTime[2]
        变量 Hour = ArrNetTime[3]
        变量 Minute = ArrNetTime[4]
        变量 Second = ArrNetTime[5]
        if(strlen(Year)==1)
            Year="0"&Year
        结束
        if(strlen(Month)==1)
            Month="0"&Month
        结束
        if(strlen(Day)==1)
            Day="0"&Day
        结束
        if(strlen(Hour)==1)
            Hour="0"&Hour
        结束
        if(strlen(Minute)==1)
            Minute="0"&Minute
        结束
        if(strlen(Second)==1)
            Second="0"&Second
        结束
        消息框(Year&":"&Month&":"&Day)//时间格式可以自己修改
    结束
结束
作者: 学习学习吧    时间: 2015-6-1 11:26
这论坛不错 发表于 2015-6-1 11:21
功能 获取百度时间()
    变量 时间
   

大哥,这个能减少误差吗?是不是比单纯的“获取网络时间”要精确很多啊?
作者: 这论坛不错    时间: 2015-6-1 11:29
本帖最后由 这论坛不错 于 2015-6-1 11:31 编辑
学习学习吧 发表于 2015-6-1 11:26
大哥,这个能减少误差吗?是不是比单纯的“获取网络时间”要精确很多啊? ...

这个是获取百度的时间,固定就是百度网站的时间,你试试看吧,应该很精确,如果说有误差,可能获取的时候,要等待1,2秒才能返回,这个就没办法,百度服务器的压力小,返回很快,0.几秒,压力大,有时候要等很久的,比如晚上12点的时候,这个时候压力应该最大
作者: 学习学习吧    时间: 2015-6-1 11:32
这论坛不错 发表于 2015-6-1 11:29
这个是获取百度的时间,固定就是百度网站的时间,你试试看吧,应该很精确 ...

实在是不好意思,我基础比较差,能不能帮我精简下,我不需要显示年月日的,我只需要显示时间,你上述代码我些部分还看不大懂 ArrNetTime后面那段的作用是?
作者: 忆辰辅助    时间: 2015-6-1 11:51
你看的是一个服务器的时间,这个函数获取的是另一个服务器的时间,你觉得能一样么?
作者: 学习学习吧    时间: 2015-6-1 11:55
忆辰辅助 发表于 2015-6-1 11:51
你看的是一个服务器的时间,这个函数获取的是另一个服务器的时间,你觉得能一样么? ...

那比如,我玩的是腾讯的游戏,我是不是应该去拿腾讯主页的网络时间?  能不能直接传递他的时间参数呢?而不用服务器返回给你的时间
作者: 忆辰辅助    时间: 2015-6-1 14:58
学习学习吧 发表于 2015-6-1 11:55
那比如,我玩的是腾讯的游戏,我是不是应该去拿腾讯主页的网络时间?  能不能直接传递他的时间参数呢?而 ...

游戏和网站也不一定是同一个服务器,不过你可以找到游戏服务器IP的话可以获取到准确时间
作者: 学习学习吧    时间: 2015-6-1 15:15
忆辰辅助 发表于 2015-6-1 14:58
游戏和网站也不一定是同一个服务器,不过你可以找到游戏服务器IP的话可以获取到准确时间 ...

如果能拿到ip的话,请问然后怎么做呢,请教下
作者: 1106752189    时间: 2015-6-1 15:57
无语了   不知道你是干什么用,要求那么精确  说话还有延迟  只要有参照物就有误差   除非世界时间以你为参照物  那你自己一定没误差  只有别人有误差  你是做航天设备制作的吗
作者: rainshine    时间: 2015-6-1 20:35
head请求 百度 这个最快 我发过源码    与延迟和服务器时间有关
作者: 学习学习吧    时间: 2015-6-1 20:48
rainshine 发表于 2015-6-1 20:35
head请求 百度 这个最快 我发过源码    与延迟和服务器时间有关

找了你的帖子没找到,能发下链接吗?谢谢




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1