網(wǎng)站首頁 編程語言 正文
1、基礎范圍控制(只控制日期,不含時分秒)
<template>
<el-date-picker
type="datetime"
v-model="startDate"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="選擇開始時間"
size="mini" style="width: 250px;"
:picker-options="startPickerOptions">
</el-date-picker>
</template>
<script>
export default {
data() {
return {
startDate:'',//時間
minTime:1618891200000,//時間戳,對應時間為:'2021-04-20 12:00:00'
maxTime:1619323200000,//時間戳,對應時間為:'2021-04-25 12:00:00'
startPickerOptions:{
disabledDate: (time) => {
//小于最小時間或者大于最大時間都不可選
return time.getTime() < this.minTime-24*3600000|| time.getTime() > this.maxTime;
}
}
}
},
</script>
-
效果如下
- 存在一個問題:我們設置的最小時間是
2021-04-20
,實際上最小時間是2021-04-21
- 存在一個問題:我們設置的最小時間是
-
解決
- 原因:控件會取每個日期的
00:00:00
作為判斷條件,如2021-04-20
會被認為是2021-04-20 00:00:00
。解析成時間戳為1618848000000
,小于2021-04-20 00:00:00
的時間戳1618891200000
,所以不可選 - 處理:將最小日期減一天
- 原因:控件會取每個日期的
startPickerOptions:{
disabledDate: (time) => {
// 最小時間減一天,防止當天日期無法選擇
return time.getTime() < this.minTime-24*3600000|| time.getTime() > this.maxTime;
}
}
精確控制(控制時分秒)
- 動態(tài)計算可選范圍
computed:{
startPickerOptions(){
//選擇的日期
let curDate = this.$moment(this.startDate).format("YYYY-MM-DD");
//最小日期
let minDate = this.$moment(this.minTime).format("YYYY-MM-DD");
//前推一天,防止當天日期無法選擇
let preTime = this.minTime-24*3600000;
// 如果選擇的日期為最小日期,則設置為最小日期的時分秒
let str = "";
if(curDate == minDate){
str = this.$moment(this.minTime).format("HH:mm:ss");
}else{
str = "00:00:00"
}
return {
disabledDate: (time) => {
return time.getTime() < preTime || time.getTime() > this.maxTime;
},
selectableRange: str + " - 23:59:59"
}
},
},
- 效果如下
- 當選擇最小日期時,只能選擇12時之后的時分秒
- 當選擇非最小日期時,可以選擇任意時分秒
相關(guān)問題請指正,歡迎留言討論!
原文鏈接:https://blog.csdn.net/a736755244/article/details/116154761
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-05-03 C#面向?qū)ο笤O計原則之單一職責原則_C#教程
- 2022-09-22 集合Map以及HashMap
- 2022-11-06 Android淺析viewBinding和DataBinding_Android
- 2023-01-27 Python基礎教程之while循環(huán)用法講解_python
- 2022-10-01 django中資源文件夾的引入及配置方法_python
- 2022-08-17 R包ggtreeExtra繪制進化樹_R語言
- 2024-01-31 深入理解Python中的 `yield` 和 `yield from`
- 2022-07-13 Android Canvas - StaticLayout 繪制多行文字
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支