找回密码
 立即注册

QQ登录

只需一步,快速开始

successit 悬赏达人认证
银牌会员   /  发表于:2020-5-30 17:05  /   查看:3741  /  回复:6



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

6 个回复

倒序浏览
successit悬赏达人认证
银牌会员   /  发表于:2020-5-30 17:06:57
沙发
版本6.0.4.0
回复 使用道具 举报
successit悬赏达人认证
银牌会员   /  发表于:2020-5-30 17:08:24
板凳


好像传上去就这样了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-6-2 10:34:05
地板
successit 发表于 2020-5-30 17:08
好像传上去就这样了

感谢反馈,我们先测试下
回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-6-3 19:04:27
5#
您好,开发确认了一下,是这样的。首先其实2020-04-21T16:00:00Z 这个时间就是2020/04/22,因为北京时间是东8区,16+8刚好是24点,也就是4/22这一天。
然后在页面中直接选择日期的话,可以正常显示2020/04/22.而如果设置默认值today()的时候,返回的就是一个UTC的时间,也就是2020-04-21T16:00:00Z。这个是因为如果是选择的日期,服务端获取到的就是一个OADATE格式的日期,也就是一个数字类型,类似于“43892”。当服务端得到的是一个数字类型的日期,会有一个机制将这个oadate转成2020/4/22这样的格式。所以反回过来就是正常的日期样式。
如果设计器是通过公式=today(),这种,那么服务端获取到=today(),然后计算一下这个公式的值,计算出来的就是一个日期个格式“2020/04/22”,而不是oadate那种数字样式。当服务器“2020/04/22”的时候,会转成utc格式的日期,也就是“2020-04-21T16:00:00Z”,然后您通过返回信息直接把这个utc格式 的日期直接返回出来了。
这个问题因为涉及到一些活字格产品底层的一些逻辑代码,短期内不好处理,我们会持续跟进。
不过有一个方式目前可以解决这个显示的问题,就是您把这个=today()改成=today()+1-1,就好了。原理其实就是当+1-1后,活字格就会将这个日期认成数字了,也就是oadate的格式,然后显示也就是通用的日期样式啦~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
successit悬赏达人认证
银牌会员   /  发表于:2020-6-4 08:48:45
6#
Tracy.Liu 发表于 2020-6-3 19:04
您好,开发确认了一下,是这样的。首先其实2020-04-21T16:00:00Z 这个时间就是2020/04/22,因为北京时间是 ...

感谢小姐姐的专业解释及解决方法!
不过自从发现这个问题的时候,我已通过将服务端命令中的页面日期传值改为服务端命令直接调用定义的数据表日期参数的方式来解决。




回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-6-4 09:06:27
7#
successit 发表于 2020-6-4 08:48
感谢小姐姐的专业解释及解决方法!
不过自从发现这个问题的时候,我已通过将服务端命令中的页面日期传值 ...

您客气啦~
的确没错,如果utc日期数据存入数据库然后从数据库中取值,日期也会显示正确。这个服务端只要走一次内部逻辑,是会处理这个utc日期的,不过直接用返回值返回的话,没有在服务端逻辑走一圈,所以也就直接显示出来了~两种处理方式都可以滴~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部