zoukankan      html  css  js  c++  java
  • 当前时间new Date()转换成时间戳毫秒数

    需求:列表页有开始日期、结束日期两个选项,且两者之间不能超过30天、开始日期不能晚于结束日期、结束日期不能早于开始日期的验证

    在网上查了些资料,也把想要的效果实现了,记录一下等下次再遇到直接看笔记了

    参考文章:https://www.cnblogs.com/qing619/p/9283618.html

    1、HTML代码部分

            <el-form-item label="开始日期" prop="dtBegin">
              <el-date-picker
                v-model="qryParams.dtBegin"
                align="right"
                type="date"
                placeholder=""
                format="yyyy-MM-dd"
                value-format="yyyyMMdd"
                @change="DateChange('dtBegin')"
              />
            </el-form-item>
            <el-form-item label="结束日期" prop="dtEnd">
              <el-date-picker
                v-model="qryParams.dtEnd"
                align="right"
                type="date"
                placeholder=""
                format="yyyy-MM-dd"
                value-format="yyyyMMdd"
                @change="DateChange('dtEnd')"
              />
            </el-form-item>

    因为后台需要传递的日期参数格式为yyyyMMdd,所以对组件设置value-format=“yyyyMMdd”属性

    2、获取当前日期

          // 显示当前日期的明天日期值(yyyy-MM-dd格式)
          getNowDate() {
            const _date = new Date().getTime() + 24 * 60 * 60 * 1000
            const d1 = new Date(_date)
            // console.log(d1, '当前日期')
            const year = d1.getFullYear()
            let month = d1.getMonth() + 1
            let date = d1.getDate()
            if (month < 10) {
              month = '0' + month
            }
            if (date < 10) {
              date = '0' + date
            }
            return year + month + date
            // return d1
          },

      这里 const _date = new Date().getTime() + 24 * 60 * 60 * 1000 是因为我需要获取明天的日期,获取哪天的根据需要加减即可:+ n * 24 * 60 * 60 * 1000或 - n * 24 * 60 * 60 * 1000(n代表往前或往后的天数),比如我想要当前日期后天的时间戳毫秒数,

    const _date = new Date().getTime() + 2 * 24 * 60 * 60 * 1000,

    2、给日期组件绑定change事件及验证

          // 开始、截止日期change事件
          DateChange(type) {
            const days = this.dateDiff(this.qryParams.dtBegin, this.qryParams.dtEnd, type)
            if (days > 30) {
              this.$alert('查询日期不能超过30天', '提示', {
                confirmButtonText: '确定',
                confirmButtonClass: 'ticket-comfirm-btn',
                callback: () => {}
              })
              if (type === 'dtBegin') {
                this.qryParams.dtBegin = ''
              } else {
                this.qryParams.dtEnd = ''
              }
            }
          },
          // 开始/结束日期间隔不超过30天、开始日期晚于结束日期、结束日期早于开始日期验证
          dateDiff(startDt, endDt, type) {
            // 20200303转成2020-03-03格式
            const startDate = stringConcat(startDt)
            const endDate = stringConcat(endDt)
            // 2020-03-03转new Data()对象
            const startTimes = new Date(startDate)
            const endTimes = new Date(endDate)
            // 获取开始、截止时间的毫秒数
            const startTimesNum = startTimes.getTime(startTimes)
            const endTimesNum = endTimes.getTime(endTimes)
            if (endTimesNum - startTimesNum < 0 && type === 'dtBegin') {
              this.$alert('开始日期不能晚于结束日期', '提示', {
                confirmButtonText: '确定',
                confirmButtonClass: 'ticket-comfirm-btn',
                callback: () => {}
              })
              this.qryParams.dtBegin = ''
              return
            } else if (endTimesNum - startTimesNum < 0 && type === 'dtEnd') {
              this.$alert('结束日期不能早于开始日期', '提示', {
                confirmButtonText: '确定',
                confirmButtonClass: 'ticket-comfirm-btn',
                callback: () => {}
              })
              this.qryParams.dtEnd = ''
              return
            }
            const days = parseInt((endTimesNum - startTimesNum) / 24 / 60 / 60 / 1000)
            return days
          }

      可能总结得不好,不过我就是给自己做个笔记,下次遇到直接拿过来就用了,大概就这样吧

  • 相关阅读:
    CMake 手册详解(五)
    linux 学习资料、Linux学习书籍(入门书籍、shell编程)推荐
    linux shell 管道命令(pipe)使用及与shell重定向区别
    linux shell “(())” 双括号运算符使用
    web签名验证程序【跨服务器、中文字符签名方法】php为例
    linux shell 脚本实现tcp/upd协议通讯(重定向应用)
    web程序乱码深入分析【基础原理篇】php为例
    php empty,isset,is_null比较(差异与异同)
    php 实现进制转换(二进制、八进制、十六进制)互相转换
    php通过文件头检测文件类型通用类(zip,rar…)
  • 原文地址:https://www.cnblogs.com/secretAngel/p/12611393.html
Copyright © 2011-2022 走看看