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. Python定义一个函数

    Python函数:实现某种功能的代码段 定义一个函数需要遵循的规则: 1.使用 def 关键字 函数名和( ),括号内可以有形参 匿名函数使用 lambda 关键字定义 2.任何传入参数和自变量必须放 ...

  2. PHP array_fill() 函数

    ------------恢复内容开始------------ 实例 用给定的键值填充数组: <?php$a1=array_fill(3,4,"blue");print_r($ ...

  3. PHP ucfirst() 函数

    实例 把 "hello" 的首字符转换为大写: <?phpecho ucfirst("hello world!");?> 运行实例 » 定义和用法 ...

  4. 使用idea maven打包项目 Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources

    超级折磨人 在网上搜到的解决方案: 技术交流群 : 816227112 修改 和 <plugin> <groupId>org.apache.maven.plugins</ ...

  5. Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependen

    Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependen ...

  6. (转)海思平台HI35XX系列内存设置

    海思平台的内存分为两部分,一部分给系统使用,另外的一部分给多媒体使用.可以通过cat /proc/meminfo查看系统内存和cat /proc/media-mem 查看多媒体内存使用情况. /pro ...

  7. C语言学习笔记之一个程序弄清&&、||、i++、++i

     由此程序可以看出, ++a是先执行自加,再把值赋值给c,所以c就是a+1=10+1=11 b++是先做赋值运算,也就是先d=b,再b自加,所以d=b(原先)=5 a和b都执行自加,所以a=11,b= ...

  8. 异步文件通道Java NIO你需要了解多少,来看看这篇文章

    在Java 7,AsynchronousFileChannel 被添加到了Java NIO中.使用AsynchronousFileChannel可以实现异步地读取和写入文件数据. 创建一个Asynch ...

  9. 【av68676164(p43-p47)】物理内存管理

    7.2.1 分区内存管理 把内存分为若干个区给用户使用 单一区存储管理 分区存储管理 固定分区 动态分区 单一区存储管理(不分区存储管理) 定义:用户区不分区,完全被一个程序占用.例如:DOS 优点: ...

  10. 正确认识springcloud的作用。分布式从了解架构到springcloud支撑

    转载于 https://www.cnblogs.com/williamjie/p/9369681.html 基于springCloud的分布式架构体系   Spring Cloud作为一套微服务治理的 ...