Foxtable(狐表)用户栏目专家坐堂 → 为什么Foxtable显示的时间不正确?


  共有2497人关注过本帖树形打印复制链接

主题:为什么Foxtable显示的时间不正确?

帅哥哟,离线,有人找我吗?
mojunming189
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
为什么Foxtable显示的时间不正确?  发帖心情 Post By:2019/12/5 1:41:00 [显示全部帖子]


有一个很困惑的问题:数据库里显示的时间是正确的,而加载到foxtable后显示的时间总是差4个小时?
数据库服务器在香港,Foxtable在阿联酋使用,时差4个小时。
我把两地的系统时间改成同一个时区,也不行。
打印的报表一定要是同一个显示的时间。怎么办?


图片点击可在新窗口打开查看此主题相关图片如下:2019-12-04时间显示不正确.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2019-12-04时间显示不正确2.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/5 13:20:00 [显示全部帖子]

这个不是数据库的问题,数据库储存的数据是正确的,但是到Foxtable前端显示的数据自动变了。

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/5 13:23:00 [显示全部帖子]

foxtable保存时,比方说2019-12-05 8:00,数据库里也是这个时间,但是等foxtable重新加载后,同样的时间就显示成了2019-12-05 4:00了(正好差4个时区)。

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/6 18:11:00 [显示全部帖子]

测试结果就是这样的:
截图中,左侧是在阿联酋打开的Foxtable客户端,右侧是香港云服务器上的Foxtable客户端,同样的数据行时间,左侧的比右侧的显示少4个小时。
而如果数据库用datatimeoffset类型,Foxtable又不支持日期显示。

图片点击可在新窗口打开查看此主题相关图片如下:2019-12-06时间显示不正确.jpg
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/25 11:54:00 [显示全部帖子]

 请问,foxmail中有获取时区的函数吗?

分别获取香港数据库的时区和客户端的时区,用来对录入的时间自动进行修正

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/26 0:38:00 [显示全部帖子]

试了多次,效果还是不理想。根本原因在于Foxtable在保存时间时,没有加上当前客户端的时区信息,而是直接将日期时间数据保存进了数据库——数据库放在其他时区的地方——中间没有进行时区转换。而在数据重新加载之后,显示的日期时间,却自动进行了时区的转化,所以造成了显示的不准。有没有办法,干脆都不要时区的转化——Foxtable客户端在显示时不要进行时区的转化,这样储存和重新加载过程都没有时区转化,就解决了根本问题了。

 回到顶部
帅哥哟,离线,有人找我吗?
mojunming189
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:123 积分:1037 威望:0 精华:0 注册:2018/8/22 8:53:00
  发帖心情 Post By:2019/12/26 1:38:00 [显示全部帖子]

或者,在Foxtable存储时,对Datatime字段自动加上当前时区信息,到数据库时,自动转化成了数据库所在的时区时间。这样存储和显示各进行了一次转化,也能准确地反映当前时间。

 回到顶部