时间相关转换-验证

简介: 时间相关转换-验证

1. 前言

  1. 时间相关的转换
  2. 时间相关的验证
  3. 适用el-date-picker  的 options,当然其他逻辑也都是相通的

2. moment

  1. 主要借助 moment

3. 日期选择今日之前

DISABLE_DATE: {
    disabledDate: (time) => {
      return time.getTime() > Date.now();
    },
  },

4. 禁用开始日期

  1. 这个主要是那种有开始日期 和结束日期的条件

DISABLE_DATE_START(eTime) {
    return {
      disabledDate(time) {
        if (eTime) {
          //如果结束时间不为空,则小于结束时间
          return new Date(eTime).getTime() < time.getTime();
        } else {
          // return time.getTime() > Date.now()//开始时间不选时,结束时间最大值小于等于当天
        }
      },
    };
  },

5.  禁用结束日期

  1. 这个主要是那种有开始日期 和结束日期的条件

DISABLE_DATE_END(sTime) {
    return {
      disabledDate(time) {
        if (sTime) {
          //如果开始时间不为空,则结束时间大于开始时间
          return new Date(sTime).getTime() > time.getTime();
        } else {
          // return time.getTime() > Date.now()//开始时间不选时,结束时间最大值小于等于当天
        }
      },
    };
  },

6.开始日期不能大于结束日期 并且 不能大于今日之后的日期

beforeOptions(obj) {
    return {
      disabledDate: time => {
        if (obj.eTime) {
          return (
            time.getTime() > new Date(obj.eTime)
          );
        } else {
          return time.getTime() > Date.now();
        }
      }
    };
  },

7. 结束日期不能小于开始日期 并且 不能大于今日之后的日期

afterOptions(obj) {
    return {
      disabledDate: time => {
        let startTime = time.getTime() > Date.now();
        if (obj.sTime) {
          startTime =
            time.getTime() <
            new Date(obj.sTime) -
              (1 * 24 * 60 * 60 - 1) * 1000;
        }
        const endTime = time.getTime() > Date.now();
        return startTime || endTime;
      }
    };
  },

8.当前月(包含当前月不可选)

disableMonth() {
      return {
        disabledDate(time) {
          const date = new Date()
          const year = date.getFullYear()
          let month = date.getMonth() + 1
          month = month.toString().padStart(2, '0')
          const currentDate = year.toString() + month
          const timeYear = time.getFullYear()
          let timeMonth = time.getMonth() + 1
          timeMonth = timeMonth.toString().padStart(2, '0')
          const timedate = timeYear.toString() + timeMonth
          return currentDate >= timedate
        },
      };
    },

参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
4天前
|
算法 安全 Unix
[RFC6238] TOTP: 基于时间的一次性密码生成算法
[RFC6238] TOTP: 基于时间的一次性密码生成算法
70 0
|
6月前
|
存储 Cloud Native Linux
QDateTime::fromString()转化失败问题
QDateTime::fromString()转化失败问题
|
4天前
|
算法 C++
C++031-C++日期模拟
C++031-C++日期模拟
C++031-C++日期模拟
|
6月前
|
JSON 小程序 JavaScript
小程序返回的时间戳转化成时间
小程序返回的时间戳转化成时间
25 0
|
6月前
|
JSON 前端开发 数据格式
全局日期请求转换处理
全局日期请求转换处理
46 0
|
11月前
|
JSON 数据格式
对象转为json字符串,时间变为时间戳的解决方法
对象转为json字符串,时间变为时间戳的解决方法
448 0
|
12月前
|
存储 资源调度 数据可视化
R问题|数值模拟流程记录和分享
R问题|数值模拟流程记录和分享
112 0
在线时间戳转换工具的坑-同样的时间戳转为北京时间,转换结果受本机时区设置的影响...
在线时间戳转换工具的坑-同样的时间戳转为北京时间,转换结果受本机时区设置的影响...
200 0
根据用户输入的参数自动读取对应时间内的wrf模式输出数据
根据用户输入的参数自动读取对应时间内的wrf模式输出数据
|
前端开发
前端工作小结61-时间戳转换
前端工作小结61-时间戳转换
82 0