codecamp

日期区间

1. 适用场景

需要选择两个日期的场景,例如请假、 出差时间、办理业务时间等适用。

2. 基础功能

2.1 日期格式

可以设置日期的显示格式

路径:组件 >> 属性 >> 显示格式

当选择了格式为年-月-日时,展示效果如下(其他格式同理):

2.2 设置固定时间(默认值)

可以给日期区间设置一个固定的值,设置了默认值后,日期区间组件会直接展示我们设置的默认值。(设置了默认值后,也可手动选择日期)。

路径:属性 >> 默认值

设置默认值时,默认格式为「年-月-日 00:00:00」,但组件实际的显示是以设置的「显示格式」为准的。

效果展示如下:

当我们设置的格式为年-月-日

实际显示的日期格式如图所示:

3. 高级用法

3.1 计算日期差值

我们可以计算在日期区间里所选的两个日期之间的差值,填充到数值组件中。

3.1.1配置方法

1)在表单/流程表单的表单设计页面,拖动一个日期区间组件和一个数值组件。

2)点击数值组件后,左侧默认值的地方选择公式编辑

3)点击编辑公式 >> 进去选择时间函数 >> 选择 CASCADEDATEINTERVALV2 函数,具体配置请参考下图:

4)效果展示如下:

关于该函数的具体用法,可以参考以下文档:

此处为语雀内容卡片,点击链接查看:

https://www.yuque.com/yida/support/dh7m8n#uefeO

3.2 禁用日期函数

通过自定义函数,可以设置日期区间的可选范围(与日期组件的自定义设置类似),适用于预约等场景。

路径: 属性 >> 禁用日期函数 >> 绑定动作

3.2.1 禁用日期函数的配置方法及示例场景

如果想设置 2021-04-16 到 2021-04-30 之间的日期不可选中,可参考如下设置:

点击绑定动作 >> 选择页面 JS >> 点击添加新动作 >> 点击确定

点击确定后,会出现以下界面,参考以下路径:

以下代码可以参考使用(可复制):

export function disabledDate(current) {
  // 判断日期在 2021-02-11 和 2021-02-17 之间
  if (current >= new Date('2021-02-11 00:00:00') && current < new Date('2021-02-18 00:00:00')) {
    // 返回 true 表示禁用
    return true;
  }
  return false;
}

代码复制截图的一段即可:

配置好了后,点击保存,那么 4 月16~4月30 之间的日期就不可选中了,效果展示如下:

4. 常见问题

4.1 为什么修改日期时,时间被重置了?

当我们选择格式为 「年-月-日-时-分」或者「年-月-日-时-分-秒」,属性面板下面会出现一个「每次选择日期是否重置时间」的功能,如图所示:

该功能默认是关闭的,也就是说在该功能关闭状态下,每次修改日期时,「时-分」 会保持原来的时间,但是如果打开这个按钮,则每次重新修改了日期,「时-分」 会被重置到「00:00」。

该功能与日期组件的显示格式常见问题一致,详情请参考链接 日期组件,点击日期格式常见问题即可查看。


日期
图片上传
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

报表设置

大屏设置

自定义页面设置

付费功能

开发者功能(需有代码基础)

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }