以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  麻烦大了,关于系统时间的问题。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127767)

--  作者:huangxueyao
--  发布时间:2018/11/21 16:16:00
--  麻烦大了,关于系统时间的问题。
搞了个项目,现在已经收尾阶段了,多端测试的时候才发现有个重大问题,就是date.now

在很多地方都用了date来获取时间,但是我现在才发现原来取的都是各个客户端自己电脑上的时间,这样他时间一改或者被什么垃圾软件改了,或者其他原因改了的话,整个数据都乱了~

现在想问:
1、有没办法在项目启动的时候读取服务器时间并保存为一个常量,然后通过系统的计划任务来不断更新这个时间?这样可以减少服务器的访问压力?
2、有没办法不用返回修改原来的代码,直接让之前的date.now能去取服务器的时间?

--  作者:有点甜
--  发布时间:2018/11/21 16:36:00
--  

1、你可以用一个计时器去检测date.now是否正确,如果不正确,就提示错误。

 

检测的方法很多,可以和服务器时间对比,也可以自己做一个时钟(启动时候获取服务器时间,然后一秒+1,间隔一段时间,再去服务器获取时间校准)

 

2、测试了一下,没办法直接用 date.now,必须修改代码才行。但,如果你用了1的检测,当时钟不正常的时候,就校准电脑时间,如

 

Dim d as date = "2018-10-10 10:10:10"

Today = d
TimeOfDay = d

 

所以代码基本不需要改


--  作者:huangxueyao
--  发布时间:2018/11/21 16:42:00
--  
嗯,没想到还可以直接修改系统时间,这样就好多啦哈哈
--  作者:zjx918
--  发布时间:2018/12/8 0:58:00
--  
给你一个好的方法,使用SQL语句获取SQL服务器上面的时间
select GETDATE()

虽然我还没用FoxTable ,但这个方法绝对可用!

--  作者:有点蓝
--  发布时间:2018/12/8 9:09:00
--  
以下是引用zjx918在2018/12/8 0:58:00的发言:
给你一个好的方法,使用SQL语句获取SQL服务器上面的时间
select GETDATE()

虽然我还没用FoxTable ,但这个方法绝对可用!

http://www.foxtable.com/webhelp/scr/2318.htm
--  作者:zhangjian222200
--  发布时间:2018/12/9 10:29:00
--  
mark
--  作者:zhangjian222200
--  发布时间:2018/12/27 19:24:00
--  
移动端有这个date.now问题么?
--  作者:notebook
--  发布时间:2018/12/27 19:39:00
--  
不用改代码,直接客户端登陆时获取服务端时间,然后设置一下本地时间即可。
--  作者:有点甜
--  发布时间:2018/12/27 20:55:00
--  
以下是引用zhangjian222200在2018/12/27 19:24:00的发言:
移动端有这个date.now问题么?

 

没有,移动端(网页,app除外)也不允许你设置人家手机的时间。

 

一般,移动端都是联网的吧,访问你的网站的时候,没有必要读取客户端的时间。代码基本都是在你网站后台完成的,没有必要。