【JS】获取当前时间戳以及计算时间差 +【AntDesign】时间日期控件计算差值踩坑

news/2024/7/19 14:08:24 标签: js, 时间戳

【时间Date转时间戳

const d = Date.now()
// 结果:1625573962353
const d1 = (new Date()).valueOf();
// 结果:1625573962353,通过valueOf()函数返回指定对象的原始值获得准确的时间戳值;

const d2 = new Date().getTime();
// 结果:1625573962353,通过原型方法直接获得当前时间的毫秒值;

const d3 = Number(new Date()) ;
//结果:1625573962353,将时间转化为一个number类型的数值,即时间戳

时间戳转时间Date】

let date = new Date(1625573962353);
// Tue Jul 06 2021 20:19:22 GMT+0800 (中国标准时间)

【改造前:计算时间差示例】

watch: {
  startTime (newValue, oldValue) {
      const d = Date.now()
      if (newValue > d) {
        this.$message.warning('选中时间不得大于当前时间')
        this.startTime = undefined // newValue  = undefined似乎不管用
      }
      const diff = (this.endTime - newValue) / 1000 / 60
      if (diff < 0) {
        this.$message.warning('结束时间需大于开始时间')
        this.startTime = undefined
      } else if (diff > 30) {
        this.$message.warning('时间差需小于30分钟')
        this.startTime = undefined
      }
    }
}

由于业务需要时间控件[时分秒] 和日期控件[年月日] 要分开使用,且不可选择将来的时间

但是使用AntDesign时间日期控件时,日期控件 和 时间控件 打印出来的数值均带有年月日时间,所以不能直接用于比较大小
在这里插入图片描述

【改造后:计算时间差示例】

watch: {
  startTime (newValue, oldValue) {
      const d = Date.now()
      const nowDate = moment().format('yyyy-MM-DD')
      if (newValue > d && this.dateValue >= nowDate) {
        this.$message.warning('选中时间不得大于当前时间')
        this.startTime = undefined
      }
      const diff = (this.endTime - newValue) / 1000 / 60
      if (diff < 0) {
        this.$message.warning('结束时间需大于开始时间')
        this.startTime = undefined
      } else if (diff > 30) {
        this.$message.warning('时间差需小于30分钟')
        this.startTime = undefined
      }
    }
}

【自己动手获取年月日】

// 返回当前日期yyyy-MM-DD格式
    nowDate () {
      var date = new Date()
      var year = date.getFullYear()
      var month = date.getMonth() + 1
      var day = date.getDate()
      if (month < 10) {
        month = '0' + month
      }
      if (day < 10) {
        day = '0' + day
      }
      var nowDate = year + '-' + month + '-' + day
    },

【时间格式化】

// moment为常用时间处理插件,官网:http://momentjs.cn/
const nowDate = moment().format('yyyy-MM-DD') // 当前时间格式化
const fdate = moment(date).format('yyyy-MM-DD') // 指定date格式化

http://www.niftyadmin.cn/n/1486122.html

相关文章

博客×××作

今天开通了我在互联网上的第一个博客&#xff0c;这就算我第一篇博言了。在这里开通博客主要是看好51CTO这个好的平台&#xff0c;不追求别的&#xff0c;只为那些会常用到的技术文章等找个家……转载于:https://blog.51cto.com/ytyda/502282

subversion 和apache 整合

subversion 和apache 整合 1 yum install sub* -y 2 yum install httpd-* mysql-* php-* -y 创建数据仓库,创建数据仓库的目录 3 mkdir -p /date/subversion/repos 4 mkdir -p /var/gftech/subversion/repos 5 svnadmin create /var/gftech/subversion/repos &#xff08;创建…

github如何删除repository

1、点进要删除的项目 2、点击settings 3、滑到最下方&#xff0c;点击delete this repository

Delphi笔记(整理)-符号和基本语法

空格&#xff08;#32&#xff09;和控制符&#xff08;#0 到#31&#xff0c;其中#13 叫回车符或行的结束符&#xff09;被称为空白符&#xff08;blank&#xff09;。 特殊符号是非文字和数字字符&#xff0c;或这类字符的组合&#xff0c;它们有固定的意义。 ‘[’相当于‘(.’…

【leetcode】5.最长回文子串——中心扩散法(拜倒在评论区的代码里)

给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 示例 1&#xff1a; 输入&#xff1a;s “babad” 输出&#xff1a;“bab” 解释&#xff1a;“aba” 同样是符合题意的答案。 示例 2&#xff1a; 输入&#xff1a;s “cbbd” 输出&#xff1a;“bb” 示例 3&…

(一)java集合框架——Iterable

Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素,我们可以看下它的成员方法 修饰符和返回值方法名描述Iterator<T>iterator()返回一个内部元素为T类型的迭代器default voidforEach(Consumer<? super T> action)对内部元素…

【leetcode】5. Z 字形变换——找规律法

将一个给定字符串 s 根据给定的行数 numRows &#xff0c;以从上往下、从左到右进行 Z 字形排列。 比如输入字符串为 “PAYPALISHIRING” 行数为 3 时&#xff0c;排列如下&#xff1a; P A H N A P L S I I G Y I R 之后&#xff0c;你的输出需要从左往右逐行读取&#xff0…

Linux和Windows平台安装MySQL的两种方式

一、下载Linux和Windows平台下的安装包 1.Linux下的源码包下载地址 2.Linux下RPM包下载地址 3.Windows下MySQL二进制分发版(.msi安装文件)和免安装版(.zip压缩文件)下载地址 二、Linux安装MySQL 1.介绍 Linux安装MySQL&#xff0c;可以选择使用二进制和源码编译安装。 源码编译…