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. Text多行文本框基本用法

    1.Text(root,width,height,bg) 主窗口,宽度,高度,背景色 2.使用 .insert() 方法添加内容 Text 对象.insert(几行.几列,"内容" ...

  2. Python raw_input() 函数

    python raw_input() 用来获取控制台的输入.高佣联盟 www.cgewang.com raw_input() 将所有输入作为字符串看待,返回字符串类型. 注意:input() 和 ra ...

  3. PHP restore_error_handler() 函数

    定义和用法 restore_error_handler() 函数恢复之前的错误处理程序. 该函数用于在通过 set_error_handler() 函数改变后恢复之前的错误处理程序. 该函数总是返回 ...

  4. Skill Virtuoso IC6.1.7 的所有View Type

    https://www.cnblogs.com/yeungchie/ 可以用deGetAllViewTypes()来获取. "graphic" "layout" ...

  5. 5.13 省选模拟赛 优雅的绽放吧,墨染樱花 多项式 prufer序列 计数 dp

    LINK:优雅的绽放吧,墨染樱花 当时考完只会50分的做法 最近做了某道题受到启发 故会做这道题目了.(末尾附30分 50分 100分code 看到度数容易想到prufer序列 考虑dp统计方案数. ...

  6. windows:shellcode 原理

    shellcode,一段短小精干的代码,放在任何地方都能执行,不依赖当前所处环境,那么就有这么几点要求: 不能有全局变量:函数里的局部变量在栈空间,地址是执行的时候动态分配的:但全局变量在编译时,会由 ...

  7. PHP+Redis实现高并发下商品超卖问题

    对于一些有一定用户量的电商网站,如果只是单纯的使用关系型数据库(如MySQL.Oracle)来做抢购,对数据库的压力是非常大的,而且如果不使用好数据库的锁机制,还会导致商品.优惠券超卖的问题.我所在的 ...

  8. springMVC 获取request参数

    持续补充............ GET 常用的:@PathVariable  @RequestParam   request.getParameter POST 常用的:@ResponseBody  ...

  9. 如何用Keil MDK5创建新项目

    1.安装相应软件 2.创建与Build项目 创建项目 下载与调试— ST-Link

  10. Spring 中的反射与反射的原理

    作者:DeppWang.原文地址 在造轮子:实现一个简易的 Spring IoC 容器一文中提到 Spring 在创建 Bean 实例和依赖注入时使用了反射,本文来具体分析一下 Spring 中的反射 ...