永洪社区

标题: 日期取月初和月末作为两个独立参数 [打印本页]

作者: zzy1912    时间: 2022-12-7 10:05
标题: 日期取月初和月末作为两个独立参数
假设我有一个参数组件,名字叫查询日期。
现想取该查询日期的月初和月末,生成两个参数用于过滤其他组件应该怎么写

作者: yhdata_yzm    时间: 2022-12-7 10:05
zzy1912 发表于 2022-12-7 10:14
因为查询日期是在前台用户可以自行选择的,所以需要这两个生成的时间参数随之变化 ...

选中日期的当月的第一天这个好处理,代码如下:
var a=now()
var b=year(now())+'-'+month(now())+'-'+'1'
var c=parseDate(b,'yyyy-MM-dd')
debug(c)
但是最后一天无法做,你不知道这个月最后一天是30还是31
作者: yhdata_lyaa    时间: 2022-12-7 10:12
是想要查询一整个月的数据吗,可以新建日期表达式,年月。设置过滤只用参数等于年月就可以了
作者: zzy1912    时间: 2022-12-7 10:14
yhdata_lyaa 发表于 2022-12-7 10:12
是想要查询一整个月的数据吗,可以新建日期表达式,年月。设置过滤只用参数等于年月就可以了 ...

因为查询日期是在前台用户可以自行选择的,所以需要这两个生成的时间参数随之变化
作者: zzy1912    时间: 2022-12-7 10:37
yhdata_yzm 发表于 2022-12-7 10:35
选中日期的当月的第一天这个好处理,代码如下:
var a=now()
var b=year(now())+'-'+month(now())+'-'+'1 ...

可以取下个月第一天然后减1,感谢编写。
作者: yhdata_yzm    时间: 2022-12-7 10:47
zzy1912 发表于 2022-12-7 10:37
可以取下个月第一天然后减1,感谢编写。

var d=dateAdd(dateAdd(c,'month',1),'dayofyear',-1)这样最后一天
作者: DX188    时间: 2022-12-7 13:27
zzy1912 发表于 2022-12-7 10:14
因为查询日期是在前台用户可以自行选择的,所以需要这两个生成的时间参数随之变化 ...

将新建的日期表达式拉入下拉列表参数,不管前台后台都是可以选择查询日期。反正你要的是一整个月的数据,表达式年月就可以,还不用脚本简单方便快捷。也可以用2个下拉列表参数,一个放表达式年,一个放表达式月。这样更简捷明了点
作者: yhdata_lyaa    时间: 2022-12-7 13:53
zzy1912 发表于 2022-12-7 10:37
可以取下个月第一天然后减1,感谢编写。


作者: zzy1912    时间: 2022-12-7 13:57
最终应用在8.5版本上的脚本为:
var a=parseDate(查询日期.getObjects()[0][0],'yyyy-MM-dd')
var b=year(a)+'-'+Month(a)+'-'+'1'
var c=parseDate(b,'yyyy-MM-dd')
var d=dateAdd(c,'dayofyear',-1)
param['b']=d

如果是9.4或以上版本,经测试如下脚本也可用:
var a=day(param['查询日期'])
param['月初']=dateAdd(param['查询日期'],"day",-a+1)
param['月末']=eomonth(param['查询日期'],0)

已完结。





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