永洪社区

标题: 时间控件,选择7月31,debug提示8月1 [打印本页]

作者: yhdata_3lc5PXp6    时间: 2022-11-7 10:04
标题: 时间控件,选择7月31,debug提示8月1




时间控件,选择7月31,debug提示8月1;选择8月31,debug提示8月31。
这个是什么情况?

作者: yhdata_lyaa    时间: 2022-11-7 10:07
是怎么绑定的,脚本写的什么
作者: yhdata_3lc5PXp6    时间: 2022-11-7 10:12
yhdata_lyaa 发表于 2022-11-7 10:07
是怎么绑定的,脚本写的什么


if(日期过滤1.firstDates!=null&&日期过滤1.secondDates!=null)
{
var start=日期过滤1.firstDates[0 //获取左边值

var a0=dateAdd(parseDate(start.substring(1,(start.length())),'yyyy-MM-dd'),"month",1)
debug(a0)
a0=formatDate(a0,"yyyy-MM-dd")
param['start_time']=a0+' 00:00:00'

var end=日期过滤1.secondDates[0; //获取右边值
var a1= dateAdd(parseDate(end.substring(1,(end.length())),'yyyy-MM-dd'),"month",1);

a1=formatDate(a1,"yyyy-MM-dd")
param['end_time']=a1+' 23:59:59'
}

debug(param['start_time')
debug(param['end_time')



作者: yhdata_yzm    时间: 2022-11-7 10:27
yhdata_3lc5PXp6 发表于 2022-11-7 10:12
if(日期过滤1.firstDates!=null&&日期过滤1.secondDates!=null)
{
var start=日期过滤1.firstDates[0 // ...

脚本不是写了dateadd 月加1啊
作者: yhdata_3lc5PXp6    时间: 2022-11-7 10:34
yhdata_yzm 发表于 2022-11-7 10:27
脚本不是写了dateadd 月加1啊

是啊,你们不是0-11吗?我选择7月,你们对应的是6.加1不就是7月了吗?然后得到7月31
作者: yhdata_lyaa    时间: 2022-11-7 10:55
选择7月31日,是没有6月31日导致的吧,选7月30日就对的。


作者: yhdata_3lc5PXp6    时间: 2022-11-7 11:36
yhdata_lyaa 发表于 2022-11-7 10:55
选择7月31日,是没有6月31日导致的吧,选7月30日就对的。

那要怎么改呢?照这个说法,我选不了8月31日,因为9月只能选择到9月30,选不了9月31
作者: yhdata_lyaa    时间: 2022-11-7 11:41
yhdata_3lc5PXp6 发表于 2022-11-7 11:36
那要怎么改呢?照这个说法,我选不了8月31日,因为9月只能选择到9月30,选不了9月31 ...

为什么要写脚本呢,不可以直接使用嘛
作者: DX188    时间: 2022-11-7 13:30
没太看懂你要表达的意思,个人理解成想要指定月份的最后 一天,不知道对不对。有个函数叫eomonth()了解一下~


作者: yhdata_3lc5PXp6    时间: 2022-11-7 13:55
yhdata_lyaa 发表于 2022-11-7 11:41
为什么要写脚本呢,不可以直接使用嘛

直接用的日期是0-11,我要筛选的是1-12啊。
作者: yhdata_3lc5PXp6    时间: 2022-11-7 14:21
yhdata_uUiWjJ9D 发表于 2022-11-7 13:30
没太看懂你要表达的意思,个人理解成想要指定月份的最后 一天,不知道对不对。有个函数叫eomonth()了解一下 ...

不是一定要用月底最后一天,而是一个日期控件,取任意一个日期范围,可能是月底,也可能不是月底。目前遇到的问题是,选择10月31日,会变成11月1日,也就是说统计范围变化了,造成统计结果不正确
作者: yhdata_lyaa    时间: 2022-11-7 14:29
yhdata_3lc5PXp6 发表于 2022-11-7 13:55
直接用的日期是0-11,我要筛选的是1-12啊。

过滤组件,绑定日期列,就跟选的一样
作者: yhdata_3lc5PXp6    时间: 2022-11-7 14:33
yhdata_lyaa 发表于 2022-11-7 14:29
过滤组件,绑定日期列,就跟选的一样

看了下,不太行。原因是我有两个柱状图,分别用不同的日期列与日期控件选择的日期范围作比较。这个才是我写脚本的原因。请问还有其他方式吗?
作者: yhdata_lyaa    时间: 2022-11-7 14:43
yhdata_3lc5PXp6 发表于 2022-11-7 14:33
看了下,不太行。原因是我有两个柱状图,分别用不同的日期列与日期控件选择的日期范围作比较。这个才是我 ...

是有的图表组件不想受过滤影响?

设置-高级-隔离该元素不受联动影响,再额外设置参数组件筛选时间呀。或者全部都用参数组件去筛选吧
作者: yhdata_lyaa    时间: 2022-11-7 14:46
用文本参数,编辑器用日期
作者: yhdata_3lc5PXp6    时间: 2022-11-7 15:06
yhdata_lyaa 发表于 2022-11-7 14:46
用文本参数,编辑器用日期

虽然选择起来麻烦点,但是确实是可以。建议优化日期过滤组件
作者: DX188    时间: 2022-11-7 15:18
yhdata_3lc5PXp6 发表于 2022-11-7 14:21
不是一定要用月底最后一天,而是一个日期控件,取任意一个日期范围,可能是月底,也可能不是月底。目前遇 ...

大概看明白你的意思了,我在本地试了下找到了原因所在。var start=日期过滤1.firstDates[0] 这一句取出来的值是文本,而且取出来的月数会比实际选择的提前一个月。比如你选择的是2022年7月31日,但取出来的值却是2022年6月31日,但是在日期里6月是没有31日的,当你用parseDate()函数转换成日期格式时,系统会自动向前进一天,变成7月1日。再当你用dateAdd()函数重新指定日期时就会变成2022年8月1日。不知道为什么var start=日期过滤1.firstDates[0] 取数会提前一月,难道是BUG
作者: yhdata_lyaa    时间: 2022-11-7 15:28
yhdata_uUiWjJ9D 发表于 2022-11-7 15:18
大概看明白你的意思了,我在本地试了下找到了原因所在。var start=日期过滤1.firstDates[0] 这一句取出来 ...

这里的月份是0-11的
作者: yhdata_lyaa    时间: 2022-11-7 15:29
yhdata_3lc5PXp6 发表于 2022-11-7 15:06
虽然选择起来麻烦点,但是确实是可以。建议优化日期过滤组件


作者: DX188    时间: 2022-11-7 15:55
yhdata_lyaa 发表于 2022-11-7 15:28
这里的月份是0-11的

那就只能这么操作,分别取出年,月,日,3个数字,将月先+1后,再用date()函数将年,月,日组成一个新的日期也就是实际所选择的日期,这样就不会出错了
作者: yhdata_lyaa    时间: 2022-11-7 16:44
yhdata_uUiWjJ9D 发表于 2022-11-7 15:55
那就只能这么操作,分别取出年,月,日,3个数字,将月先+1后,再用date()函数将年,月,日组成一个新的 ...

好像和作者的想法差不多




欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4