时间相关转换-验证

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

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
        },
      };
    },

参考资料


初心

我所有的文章都只是基于入门,初步的了解;是自己的知识体系梳理,如有错误,道友们一起沟通交流;
如果能帮助到有缘人,非常的荣幸,一切为了部落的崛起;
共勉
相关文章
|
6月前
|
算法 安全 Unix
[RFC6238] TOTP: 基于时间的一次性密码生成算法
[RFC6238] TOTP: 基于时间的一次性密码生成算法
177 0
|
29天前
|
存储 Unix C++
c++时间形式转换
【10月更文挑战第29天】在 C++ 中,时间形式转换主要涉及将时间在不同表示形式之间转换,如字符串与 `tm` 结构或 `time_t` 类型之间的转换。常用的基本时间类型包括 `time_t` 和 `tm` 结构,转换函数有 `strftime` 和 `strptime`,可以满足大多数时间处理需求。此外,还可以通过自定义类来扩展时间转换功能。
|
6月前
Qt 时间戳和时间相关的转换操作
Qt 时间戳和时间相关的转换操作
255 0
|
JSON 前端开发 数据格式
全局日期请求转换处理
全局日期请求转换处理
76 0
|
JSON 小程序 JavaScript
小程序返回的时间戳转化成时间
小程序返回的时间戳转化成时间
51 0
在线时间戳转换工具的坑-同样的时间戳转为北京时间,转换结果受本机时区设置的影响...
在线时间戳转换工具的坑-同样的时间戳转为北京时间,转换结果受本机时区设置的影响...
282 0
封装时间戳转具体时间工具
封装时间戳转具体时间工具
149 0
封装时间戳转具体时间工具
根据用户输入的参数自动读取对应时间内的wrf模式输出数据
根据用户输入的参数自动读取对应时间内的wrf模式输出数据
|
PHP
tp自动验证流程和返回空数组的问题
tp自动验证流程和返回空数组的问题
114 0