使用Orbeon时如何基于当前日期设置上一年起止日期为字段初始值
Orbeon日期字段初始值设置方案
你之前的方案出错是因为xs:yearMonthDuration仅做固定年月长度的偏移,不会自动对齐到年度的首尾节点,直接提取年份拼接日期是最稳定的实现方式,直接将对应公式填入控件初始值配置的Formula输入框即可生效,两个字段的公式分别如下:
- 开始日期(上一年1月1日)初始值公式
xs:date(concat(string(year(current-date()) - 1), "-01-01"))
逻辑说明:先通过year(current-date())提取当前系统日期的年份,减1得到上一年的年份值,直接拼接-01-01后转为xs:date类型即可,完全避免日期偏移带来的误差。
- 结束日期(上一年12月31日)初始值公式
xs:date(concat(string(year(current-date()) - 1), "-12-31"))
逻辑说明:和开始日期逻辑一致,12月固定为31天,直接拼接不会出现日期合法性问题。
内容的提问来源于stack exchange,提问作者HMFN
相关产品推荐
相关产品推荐

