找回密码
 立即注册

QQ登录

只需一步,快速开始

神经蛙 活字格认证
金牌服务用户   /  发表于:2024-11-8 17:01  /   查看:215  /  回复:13
10金币
本帖最后由 神经蛙 于 2024-11-11 09:48 编辑

如图,【起始时间】、【结束时间】为EL-日期选择器(日期时间),【时长】按时间格式(h:mm)显示,值为【结束时间】-【起始时间】。
有些时间相差1小时,但是显示的时长却是0:59。

还有类似的问题,比如设置【结束时间】的值默认为【起始时间】之后1小时(=TRUNC(起始时间)+TIME(HOUR(起始时间)+1,MINUTE(起始时间),0)),但是显示结果可能是【结束时间】与【起始时间】相差59分钟。
比如:2024/11/8 16:34-2024/11/8 17:34

请教各位大佬如何解决?

PS:我理解这是由于日期值实际是一个浮点数,时间其实是小数部分,会有精度损失。但是同样的值在EXCEL中是没有这样的问题的,可能活字格中的数据精度有点低?


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

13 个回复

倒序浏览
Shawn.Liu活字格认证
超级版主   /  发表于:2024-11-8 17:30:29
沙发
大佬,这边单纯使用EL日期选择器和相减的公式(设置单元格格式)看起来显示是1:00的格式,这边数据绑定的业务表是内建库还是外联库,这边根据环境再模拟一下



本帖子中包含更多资源

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

x
回复 使用道具 举报
神经蛙活字格认证
金牌服务用户   /  发表于:2024-11-8 17:44:39
板凳
本帖最后由 神经蛙 于 2024-11-8 17:46 编辑
Shawn.Liu 发表于 2024-11-8 17:30
大佬,这边单纯使用EL日期选择器和相减的公式(设置单元格格式)看起来显示是1:00的格式,这边数据绑定的业 ...


不涉及库,不绑定字段,就页面显示,直接写公式,两个单元格相减。
我下周一发demo。
回复 使用道具 举报
Shawn.Liu活字格认证
超级版主   /  发表于:2024-11-8 18:01:00
地板
回复 使用道具 举报
神经蛙活字格认证
金牌服务用户   /  发表于:2024-11-11 09:17:43
5#
本帖最后由 神经蛙 于 2024-11-11 09:47 编辑

不好意思,这个问题里首先我犯了个低级错误,因为只显示了时和分,没显示秒数,计算时也忽略了秒(都按0秒来的)。这样就导致起始时间通过【此刻】获取时,秒数可能不为0,所以最终减出来分钟可能会少1。

但是活字格的问题是,如果点【此刻】,生成的时间是精确到秒的,但是之后如果在不重新加载页面的情况下,再通过不显示秒的EL-日期选择器来重新选择时间,秒数不会被清除,导致之后的时间还是计算了秒。


在排除秒数的问题之后,如上图所示的时间,还是会有不是整分钟的情况。
而且还会有选择器中显示的秒数和但单元格格式显示的秒数不一致的情况。

本帖子中包含更多资源

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

x
回复 使用道具 举报
神经蛙活字格认证
金牌服务用户   /  发表于:2024-11-11 09:49:25
6#
可以试下起始时间 2024/11/11 12:38:48

本帖子中包含更多资源

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

x
回复 使用道具 举报
Shawn.Liu活字格认证
超级版主   /  发表于:2024-11-11 16:47:19
7#
神经蛙 发表于 2024-11-11 09:17
不好意思,这个问题里首先我犯了个低级错误,因为只显示了时和分,没显示秒数,计算时也忽略了秒(都按0 ...

大佬,再通过不显示秒的EL日期选择器,是什么类型的,这边还不太理解,运行下面的工程,点击此刻后,重新选择时间,在模版命令下,计算时长应该是正常的吧

然后您这边的需求是默认结束时间是在开始时间+1h来计算的吗。

本帖子中包含更多资源

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

x
回复 使用道具 举报
神经蛙活字格认证
金牌服务用户   /  发表于:2024-11-11 17:25:01
8#
Shawn.Liu 发表于 2024-11-11 16:47
大佬,再通过不显示秒的EL日期选择器,是什么类型的,这边还不太理解,运行下面的工程,点击此刻后,重新 ...


我再完整把问题描述一遍(结合我提供的DEMO工程文件)。


1. 在EL-日期选择器的显示格式中选择【YYYY/MM/DD HH:MM】不显示秒,但是通过EL-日期选择器选择【此刻】,生成的时间仍然是精确到秒的(秒不为0)。在点了【此刻】之后,手动选择其他时间,秒数也不会被清零。但是如果一开始没有选择【此刻】,直接手动选择时间,秒数是为0的。
比如EL-日期选择器中选择【此刻】,时间可能是【2024/11/11 17:20:37】,我再手动选择时间为【2024/11/11 17:28】,这个时候实际的时间仍然是带一开始选择【此刻】生成的秒数37的,也就是【2024/11/11 17:28:37】,只能刷新页面之后重新选择,秒数才会清零。
这个可能算不上BUG,只能说是组件的逻辑没有做的那么严谨,这个问题可以先不管,我把实际的秒数也参与计算就好了。




2. 通过EL-日期选择器选择的时间(EL-日期选择器按【YYYY/MM/DD HH:MM:SS】来显示比较容易发现问题),赋值给另一个单元格(DEMO中,日期选择器下方单元格的值=日期选择器所在单元格),按【YYYY/MM/DD HH:MM:SS】的格式显示后,与EL-日期选择器中的秒数不一致。
比如EL-日期选择器中选择【2024/11/11 12:38:48】,赋值给下方的单元格后,显示为【2024/11/11 12:38:47】,少了1秒。
这个问题我会另外再发BUG帖。

3. 起始时间单元格设置了命令,值变化时设置默认的结束时间(小时数+1),结束时间的公式为【=TRUNC(起始时间)+TIME(HOUR(起始时间)+1,MINUTE(起始时间),SECOND(起始时间))】,但是实际结果是少了1秒。这是我原本想要解决的问题,除了人为多加1秒之外,是否有更好的处理方式。
回复 使用道具 举报
Shawn.Liu活字格认证
超级版主   /  发表于:2024-11-11 18:30:03
9#
模版命令在使用公式计算结束时间时,当出现结束时间Cell少一秒钟,发现SECOND(起始时间)就已经慢了一秒,考虑为起始时间单元格绑定命令为设置单元格属性,值=起始时间Cell+1/24,测试了若干次,点击此刻还没有出现结束时间少的问题
回复 使用道具 举报
神经蛙活字格认证
金牌服务用户   /  发表于:2024-11-11 19:13:34
10#
Shawn.Liu 发表于 2024-11-11 18:30
模版命令在使用公式计算结束时间时,当出现结束时间Cell少一秒钟,发现SECOND(起始时间)就已经慢了一秒,考 ...

感谢!所以是模板命令的延迟达到秒级?还是按1/24来计算小时数精度更高?我明天再自己测试下
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部