antdv时间选择a-date-picker设置日期可选范围(近一周、近半月、近一月等) - moment.js
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的更多相关文章
- asp.net使用My97 Date Picker时设置默认起始时间为n年之前的今天
可以使用My97 Date Picker组件来收集用户输入的日期值. 首先下载该组件:http://www.my97.net/dp/index.asp放到自己的项目中. 然后在项目里面引用js和css ...
- element-ui日期组件DatePicker设置日期选择范围Picker Options
element-UI提供了DatePicker日期选择器组件,可以让我们很方便的获取到日期,默认的选择是全部的日期都可以选择的,但是很多场景中我们要对日期选择范围做限定,比如出行日期就不能选过去的日期 ...
- JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;
学习目标 1.掌握创建日期对象的方法 2.掌握date对象中获取日期时间的方法 3.掌握date对象中设置日期时间的方法 如何创建一个日期对象 语法:new Date(); 功能:创建一个日期时间对象 ...
- iOS开发UI篇—Date Picker和UITool Bar控件简单介绍
iOS开发UI篇—Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...
- SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
java日期格式大全 format SimpleDateFormat(转) SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH ...
- Jquery ui datepicker 设置日期范围,如只能隔3天
最近的后台项目前端使用了jquery ui 日历控件自然就使用了jquery ui 的 datepicker 后台数据比较好大,一般是千万级的和百万级的关联,查询会很慢,所以后加想多加些过滤条件, ...
- 【Shell】获取设置日期和延时
1.读取日期 Linux:~ # date Mon Dec 17 03:16:53 EST 2018 2.格式日期并打印 Linux:~ # date "+%d %B %Y" 17 ...
- 【C#】datetimepicker里面如何设置日期为当天日期,而时间设为0:00或23:59?
今天无意中发现要根据日期查询时间,datatimepicker控件会把时间默认成当前时间(当你的控件只显示日期时),这样查询出来的出来的数据会有误差,用来下面的办法成功设置日期为当天日期,而时间设为0 ...
- [Swift实际操作]七、常见概念-(6)日期Date和DateFormatter日期的格式化
本文将为你演示日期类型的使用,以及如何对日期进行格式化. 首先引入需要使用到的界面框架 import UIKit 初始化一个日期对象,它的值和当前电脑中的日期相同 var date = Date() ...
随机推荐
- Numpy数组的函数
import numpy as np # 将 0~100 10等分 x = np.arange(0,100,10) # array([ 0, 10, 20, 30, 40, 50, 60, 70, 8 ...
- PHP tanh() 函数
实例 返回不同数的双曲正切: <?php高佣联盟 www.cgewang.comecho(tanh(M_PI_4) . "<br>");echo(tanh(0.5 ...
- C/C++编程笔记:C++入门知识丨认识C++的函数和对象
一. 本篇要学习的内容和知识结构概览 二. 知识点逐条分析 1. 混合型语言 C++源文件的文件扩展名为.cpp, 也就是c plus plus的简写, 在该文件里有且只能有一个名为main的主函数, ...
- luogu P5043 【模板】树同构 hash 最小表示法
LINK:模板 树同构 题目说的很迷 给了一棵有根树 但是重新标号 言外之意还是一棵无根树 然后要求判断是否重构. 由于时无根的 所以一个比较显然的想法暴力枚举根. 然后做树hash或者树的最小表示法 ...
- Linux的VMWare下Centos7的三种网络配置过程(网络二)
Linux之VMWare下Centos7的三种网络配置过程 环境:虚拟软件:VMWare 14.0客户机:windows 10虚拟机:centos 7 VMware三种网络连接方式 Bridge(桥接 ...
- Java线程池的了解使用—筑基篇
前言 Java中的线程池是一个很重要的概念,它的应用场景十分广泛,可以被广泛的用于高并发的处理场景.J.U.C提供的线程池:ThreadPoolExecutor类,可以帮助我们管理线程并方便地并行执行 ...
- RabbitMQ学习总结(1)-基础概念
1. 概念 1.1 AMQP协议 AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消 ...
- JDK8的LocalDateTime用法
参考资料:好好学Java https://mp.weixin.qq.com/s/Dd_7yUh3lq3TqE2cjsYXvw JDK8新特性里提供了3个时间类:LocalDate.LocalTime ...
- OWL本体语言和Protege本体编辑器
OWL本体语言和Protege本体编辑器 演讲稿原作者:Wala Abdulaziz译者:Wu Di (pimgeek)转载.编辑:Tan Liwei原文发布日期:2013年6月5号原文链接:http ...
- Android 的OkHttp(发送网络请求)
今天讲的是和HttpURLConnection差不多的OkHttp; 先把网站献上: 官网介绍okhttp的: https://square.github.io/okhttp/ 下载postman的: ...