elementui时间选择器进行时间限制

这段代码展示了如何在Vue中使用Element UI的日期选择器组件来设置作品完成日期和发表日期的限制。通过`disabledDate`属性,确保发表日期不能早于完成日期且不能晚于当前日期,同时完成日期也不能晚于当前日期。这种做法有助于在前端实现数据输入的合理性校验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 html部分

<el-form-item label="作品完成日期" prop="complete_date">
                    <el-date-picker v-model="ruleForm.complete_date" type="date" placeholder="作品完成日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" :picker-options="pickerOptions2">
                    </el-date-picker>
                </el-form-item>


<el-form-item label="作品发表日期" prop="first_publish_date">
                        <el-date-picker v-model="ruleForm.first_publish_date" type="date" placeholder="作品发表日期" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" :picker-options="pickerOptions1">
                        </el-date-picker>
                    </el-form-item>

js部分

data() {
        return {
            ruleForm: {
                complete_date: "",
                first_publish_date: "",
            },
            pickerOptions1: {
                // 发表时间小于今天而且大于等于完成时间
                disabledDate: time => {
                     return (
                        time.getTime() < new Date(this.ruleForm.complete_date).getTime()*1 - 24 * 60 * 60 * 1000 || time.getTime() > new Date( new Date()).getTime()
                    ); 
                }
            },
            pickerOptions2: {
                // 完成时间小于今天而且小于等于发表时间
                disabledDate: time => {
                    return (
                       time.getTime() > new Date(this.ruleForm.first_publish_date).getTime() * 1 - 24 * 60 * 60 * 1000 ||  time.getTime() > new Date( new Date()).getTime()
                    ); 
                }
            },
        }
}

### ElementUI 日期时间选择使用方法 #### 组件介绍 ElementUI 的 `DatePicker` 是用于选择或输入日期的时间选择,支持多种类型的日期选择功能,如单个日期、日期范围、特定时间段等[^1]。 #### 参数传递方式 为了确保所选日期能够按照预期格式返回,在 Vue 中可以通过设置 `value-format` 属性来规定绑定值的格式。这使得开发者可以在模板中直接获得已经格式化的日期字符串,而不需要额外转换逻辑[^2]。 ```html <el-date-picker v-model="time" type="datetimerange" range-separator="-" start-placeholder="起始时间" end-placeholder="结束时间" style="width: 350px; margin-left: 10px" value-format="YYYY-MM-DD HH:mm:ss"> </el-date-picker> ``` 上述代码展示了如何配置一个带有开始时间和结束时间的选择控件,并指定了输出时间为 `YYYY-MM-DD HH:mm:ss` 格式的字符串。 #### 设置时间选择范围 当应用需求涉及到限制用户可选的具体时刻时,可通过监听事件更新组件选项中的 `pickerOptions` 来动态调整允许挑选的时间区间。例如: ```javascript data() { return { selectedDate: '', pickerOptions: {} } }, watch: { 'selectedDate'(newVal) { this.pickerOptions = { disabledDate(time) { const date = new Date(newVal); return time.getTime() < date.setDate(date.getDate() - 7); // 只能选择最近一周内的日期 } }; } } ``` 此段 JavaScript 实现了基于选定日期计算并设定有效选择区间的功能[^3]。 #### 数据回显机制 对于已保存的数据记录,如果页面重新加载后希望自动填充之前选择过的日期,则需注意服务端传输过来的时间戳应当被正确解析成前端期望的形式再赋给 `v-model` 所关联的数据项。通常情况下,只要前后端保持一致的时间格式即可实现良好的交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值