elementUI-日期选择器(单个框 限制选择范围、快捷键选择)

刺骨的言语ヽ痛彻心扉 2022-11-27 03:07 756阅读 0赞
  1. .el-input {
  2. width: 30%;
  3. margin-right: 20px;
  4. }
  5. <div id="page">
  6. <!--下面的html定义标签部分写在这里-->
  7. </div>
  8. new Vue({
  9. el:'#page',//选择元素,通常都是id
  10. data: function() {
  11. return { //定义的变量
  12. value1: '',
  13. value2: '',
  14. //注意:-----下面的javascript部分的代码放在这里
  15. }
  16. },
  17. })

单个框实现的日期选择

情景一:快捷键

在这里插入图片描述

  1. <el-date-picker v-model="value2" align="right" type="date" placeholder="选择快捷键" :picker-options="pickerOptions">
  2. </el-date-picker>
  3. pickerOptions: {
  4. disabledDate(time) {
  5. return time.getTime() > Date.now();
  6. },
  7. shortcuts: [{
  8. text: '今天',
  9. onClick(picker) {
  10. picker.$emit('pick', new Date());
  11. }
  12. }, {
  13. text: '昨天',
  14. onClick(picker) {
  15. const date = new Date();
  16. date.setTime(date.getTime() - 3600 * 1000 * 24);
  17. picker.$emit('pick', date);
  18. }
  19. }, {
  20. text: '一周前',
  21. onClick(picker) {
  22. const date = new Date();
  23. date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
  24. picker.$emit('pick', date);
  25. }
  26. }]
  27. },

情景二:选择今天及今天之后的日期(包含今天)

在这里插入图片描述

  1. <el-date-picker v-model="value1" type="date" placeholder="选择今天及今天之后的日期" :picker-options="pickerOptions0">
  2. </el-date-picker>
  3. pickerOptions0: {
  4. disabledDate(time) {
  5. return time.getTime() < Date.now() - 8.64e7;
  6. }
  7. }

情景三:今天以及今天以前的日期

在这里插入图片描述

  1. <el-date-picker v-model="value2" align="right" type="date" placeholder="今天以及今天以前的日期" :picker-options="pickerOptions1">
  2. </el-date-picker>
  3. pickerOptions1: {
  4. disabledDate(time) {
  5. return time.getTime() > Date.now() - 8.64e6//没有 - 8.64e6,就不能选择今天
  6. }
  7. }

情景四:选择今天之后的日期(不能选择当天时间)

在这里插入图片描述

  1. <el-date-picker v-model="value2" align="right" type="date" placeholder="选择今天之后的日期(不能选择当天时间)" :picker-options="pickerOptions2">
  2. </el-date-picker>
  3. pickerOptions2: {
  4. disabledDate(time) {
  5. return time.getTime() < Date.now();
  6. }
  7. }

情景五:选择今天之前的日期(不能选择当天)

在这里插入图片描述

  1. <el-date-picker v-model="value2" align="right" type="date" placeholder="选择今天之前的日期(不能选择当天)" :picker-options="pickerOptions3">
  2. </el-date-picker>
  3. pickerOptions3: {
  4. disabledDate(time) {
  5. // console.log(time.getTime())
  6. // console.log(Date.now())
  7. var date = new Date();
  8. var year = date.getFullYear();
  9. var month = date.getMonth() + 1;
  10. var nowDate = date.getDate();
  11. if (month >= 1 && month <= 9) {
  12. month = "0" + month;
  13. }
  14. if (nowDate >= 1 && nowDate <= 9) {
  15. nowDate = "0" + nowDate;
  16. }
  17. var currentdate = year.toString() + month.toString() + nowDate.toString();
  18. var timeyear = time.getFullYear();
  19. var timemonth = time.getMonth() + 1;
  20. var timeDate = time.getDate();
  21. if (timemonth >= 1 && timemonth <= 9) {
  22. timemonth = "0" + timemonth;
  23. }
  24. if (timeDate >= 1 && timeDate <= 9) {
  25. timeDate = "0" + timeDate;
  26. }
  27. var timedate = timeyear.toString() + timemonth.toString() + timeDate.toString();
  28. return currentdate <= timedate;
  29. }
  30. }

情景陆:月份选择器,大于当前月份的日期不可选

在这里插入图片描述

  1. <el-date-picker v-model="value2" type="month" placeholder="大于当前月份的日期不可选" :picker-options="pickerOptions4">
  2. </el-date-picker>
  3. pickerOptions4: { //大于当前月分的日期不可选
  4. disabledDate: (time) => {
  5. var date = new Date();
  6. var year = date.getFullYear();
  7. var month = date.getMonth() + 1;
  8. if (month >= 1 && month <= 9) {
  9. month = "0" + month;
  10. }
  11. var currentdate = year.toString() + month.toString();
  12. var timeyear = time.getFullYear();
  13. var timemonth = time.getMonth() + 1;
  14. if (timemonth >= 1 && timemonth <= 9) {
  15. timemonth = "0" + timemonth;
  16. }
  17. var timedate = timeyear.toString() + timemonth.toString();
  18. return currentdate < timedate;
  19. }
  20. }

情景七:年份选择器,大于当前年份的日期不可选

在这里插入图片描述

  1. <el-date-picker v-model="value2" type="year" placeholder="选择年" :picker-options="pickerOptions5">
  2. </el-date-picker>
  3. pickerOptions5: {
  4. disabledDate: (time) => {
  5. var date = new Date();
  6. var currentyear = date.getFullYear().toString();
  7. var timeyear = time.getFullYear().toString();
  8. return currentyear < timeyear;
  9. }
  10. }

情景八:年份选择器,大于当前年份(包含当前)不可选

在这里插入图片描述

  1. <el-date-picker v-model="value2" type="year" placeholder="选择年" :picker-options="pickerOptions6">
  2. </el-date-picker>
  3. pickerOptions6: {
  4. disabledDate: (time) => {
  5. var date = new Date();
  6. var currentyear = date.getFullYear().toString();
  7. var timeyear = time.getFullYear().toString();
  8. return currentyear <= timeyear;
  9. }
  10. }

情景九:日期选择器, 只能选择今天之后(不包含今天) 和 未来七天的时间

在这里插入图片描述

  1. <el-date-picker v-model="value1" type="date" placeholder="开始日期" :picker-options="pickerOptions7">
  2. </el-date-picker>
  3. pickerOptions7: {
  4. //只能选择今天 和未来七天的时间
  5. disabledDate(time) {
  6. let curDate = (new Date()).getTime();
  7. let three = 7 * 24 * 3600 * 1000;
  8. let threeMonths = curDate + three;
  9. return time.getTime() < Date.now() || time.getTime() > threeMonths;
  10. },
  11. }

发表评论

表情:
评论列表 (有 0 条评论,756人围观)

还没有评论,来说两句吧...

相关阅读