Vue->Template:

<a-date-picker
v-model="value"
:disabled-date="disabledDate"
/>

Vue->Methods:

// 设置不可选择的日期
disabledDate (current) {
this.value = undefined
switch (this.data.dateRange) {
// 近一周
case 'nearWeek':
{
// 计算今天是这周第几天 周日为一周中的第一天
const weekOfday = parseInt(this.moment().format('d'))
// 获取当前周的开始结束时间
const weekStart = this.moment().subtract(weekOfday - 1, 'days')
const weekEnd = this.moment().add(7 - weekOfday, 'days')
// 设置区间之外的日期不可选
return current < weekStart.subtract(1, 'days') || current > weekEnd
}
// 近半月
case 'nearHalfMonth':
{
// 获取本月开始结束时间
const monthStart = this.moment().startOf('month')
const monthEnd = this.moment().endOf('month')
// 区间开始结束
let start, end
// 计算今天是这月第几天
const monthOfday = parseInt(this.moment().format('D'))
// 判断是否处于前半月还是后半月
if (monthOfday < 15) {
// 前半月区间:1 ~ 15
start = monthStart
end = this.moment(start).add('days', 14)
} else {
// 后半月区间:16 ~ 月末最后一天
start = this.moment(this.moment().format('YYYY-MM') + '-16')
end = monthEnd
}
// 设置区间之外的日期不可选
return current < start || current > end.add('days', 1)
}
// 近一月
case 'nearMonth':
{
// 获取本月开始结束时间
const monthStart = this.moment().startOf('month')
const monthEnd = this.moment().endOf('month')
// 设置区间之外的日期不可选
return current < monthStart || current > monthEnd.add('days', 1)
}
// 近半年
case 'nearHalfYear':
{
// 获取今年开始结束时间
const yearStart = this.moment().startOf('year')
const yearEnd = this.moment().endOf('year')
// 区间开始结束
let start, end
// 获取今年天数
const yearDays = this.moment(yearEnd).diff(yearStart, 'days')
// 计算今天是今年第几天
const yearOfday = parseInt(this.moment().format('DDD'))
// 判断是否处于前半年还是后半年
if (yearOfday < (yearDays / 2)) {
// 前半年区间:今年开始时间 ~ 第二季度结束
start = yearStart
// 今年开始时间+2个季度-1天,即上半年结束时间(第二季度结束)
end = this.moment(yearStart).add('Q', 2).subtract(1, 'days')
} else {
// 后半年区间:第三季度开始 ~ 年末最后一天
// 今年开始时间+2个季度,即下半年开始时间
start = this.moment(yearStart).add('Q', 2)
end = yearEnd
}
// 设置区间之外的日期不可选
return current < start || current > end
}
// 近一年
case 'nearYear':
{
// 获取今年开始结束时间
const yearStart = this.moment().startOf('year')
const yearEnd = this.moment().endOf('year')
// 设置区间之外的日期不可选
return current < yearStart || current > yearEnd
}
}
return false
}

antdv时间选择a-date-picker设置日期可选范围(近一周、近半月、近一月等) - moment.js的更多相关文章

  1. asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天

    可以使用My97 Date Picker组件来收集用户输入的日期值. 首先下载该组件:http://www.my97.net/dp/index.asp放到自己的项目中. 然后在项目里面引用js和css ...

  2. element-ui日期组件DatePicker设置日期选择范围Picker Options

    element-UI提供了DatePicker日期选择器组件,可以让我们很方便的获取到日期,默认的选择是全部的日期都可以选择的,但是很多场景中我们要对日期选择范围做限定,比如出行日期就不能选过去的日期 ...

  3. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;

    学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...

  4. iOS开发UI篇—Date Picker和UITool Bar控件简单介绍

    iOS开发UI篇—Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...

  5. SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

    java日期格式大全 format SimpleDateFormat(转) SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH ...

  6. Jquery ui datepicker 设置日期范围,如只能隔3天

    最近的后台项目前端使用了jquery ui 日历控件自然就使用了jquery ui 的   datepicker 后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件, ...

  7. 【Shell】获取设置日期和延时

    1.读取日期 Linux:~ # date Mon Dec 17 03:16:53 EST 2018 2.格式日期并打印 Linux:~ # date "+%d %B %Y" 17 ...

  8. 【C#】datetimepicker里面如何设置日期为当天日期,而时间设为0:00或23:59?

    今天无意中发现要根据日期查询时间,datatimepicker控件会把时间默认成当前时间(当你的控件只显示日期时),这样查询出来的出来的数据会有误差,用来下面的办法成功设置日期为当天日期,而时间设为0 ...

  9. [Swift实际操作]七、常见概念-(6)日期Date和DateFormatter日期的格式化

    本文将为你演示日期类型的使用,以及如何对日期进行格式化. 首先引入需要使用到的界面框架 import UIKit 初始化一个日期对象,它的值和当前电脑中的日期相同 var date = Date() ...

随机推荐

  1. PHP cal_days_in_month() 函数

    ------------恢复内容开始------------ 实例 针对指定的年份和历法,获取一个月中的天数: <?php$d=cal_days_in_month(CAL_GREGORIAN,1 ...

  2. 第二次作业:卷积神经网络 part 1

    第二次作业:卷积神经网络 part 1 视频学习 数学基础 受结构限制严重,生成式模型效果往往不如判别式模型. RBM:数学上很漂亮,且有统计物理学支撑,但主流深度学习平台不支持RBM和预训练. 自编 ...

  3. 好用的连接池-HikariCP

    在Springboot的发展历程中,默认的DataSource也从Springboot1.x的tomcat连接池到Springboot2.x的HikariCP.关于HikariCP的简单使用在配置多数 ...

  4. UIPickView的简单使用

    好记性不如烂笔头,勤做笔记. 摘要: 1.UIPickVIew 几个重要的属性 (1)datePickerMode UIDatePickerModeTime, // Displays hour, mi ...

  5. C++Primer学习日记

    计划:4.27-4.30 完成IO库.顺序容器两章 4/28 ------------------------------------------------- 为什么要使用using namespa ...

  6. python2.3嵌套if结构:

    #案例:存款100万的请款下,买宝马:老爸资助大于50万买宝马740:大于30万买宝马520:小于20万宝马320.存款大于50万小于100万买丰田:大于20万小于50万买二手车:小于20万自行车! ...

  7. Python10行以内代码能有什么高端操作

    Python10行以内代码能有什么高端操作 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代 ...

  8. 百度小程序中swan.setPageInfo的用法

    现在百度智能小程序是百度最新的流量入口,现在很多做SEO优化.小程序开发的企业为了获取更多的流量不得不开发了,很多的技术人员不了解百度小程序的标题和关键词.描述等信息不知道在哪里设置. 以下是小编给你 ...

  9. java 接口二

    一 接口的多实现 接口最重要的体现:解决多继承的弊端.将多继承这种机制在java中通过多实现完成了. interface Fu1 { void show1(); } interface Fu2 { v ...

  10. CSS 定位总结

    目录 元素显示模式 元素模式 元素显示模式转换 CSS定位机制 静态定位static 相对定位relative 绝对定位absolute 固定定位fixed 粘性定位sticky 定位小结一图流 CS ...