当前位置: 首页 > news >正文

javascript原来还可以这样比较两个日期(直接使用new Date)

有个需求是这样的:假设今天是2023/11/15
在这里插入图片描述
有一个表格,表格中操作列按钮的展示与隐藏依靠开始结束日期来进行展示,如果当前日期在开始结束日期之间,则进行展示,我一开始做的时候使用new Date转换成时间戳(getTime)进行比较的,

const timeFlag = new Date(this.$CU.formate(new Date()).getTIme() >= new Date(开始日期).getTime() && new Date(this.$CU.formate(new Date()).getTIme() <= new Date(结束日期).getTime()
if(timeFlag) {//显示按钮
}

this.$CU.formate是挂载到vue原型上的一个格式化方法

/*** 获取 '2021-07-14' 或者 '2021-07-14 10:10:20' 样式的时间字符串* @param {*} val 时间(Date类型的字符串 或者 '2021-07-14' 或者 Number类型的时间戳)* @param {*} formate 时分秒(hms)* @returns 返回 '2021-07-14' 或者 '2021-07-14 10:10:20'*/
const formatData = function (val, formate) {if (!val) {return;}if (Object.prototype.toString.call(val) === "[object String]" && !isNaN(new Date(val.replace(/-/g, "/")))) {val = val.replace(/-/g, "/");}let y = new Date(val).getFullYear(); // 年let m = new Date(val).getMonth() + 1; // 月let d = new Date(val).getDate(); // 日let hours = new Date(val).getHours(); // 时let minutes = new Date(val).getMinutes(); // 分let seconds = new Date(val).getSeconds(); // 秒m = m < 10 ? "0" + m : m;d = d < 10 ? "0" + d : d;let returnStr = y + "-" + m + "-" + d;if (formate === "hms") {hours = hours < 10 ? "0" + hours : hours;minutes = minutes < 10 ? "0" + minutes : minutes;seconds = seconds < 10 ? "0" + seconds : seconds;returnStr += " " + hours + minutes + seconds;}return returnStr;
};

通过转换成时间戳的形式,比较当前日期是否在开始结束日期之间来进行判断。
当今天我看同事的代码也有实现类似的功能的时候,发现不进行时间戳转换也可以,直接使用new Date()比较,
在这里插入图片描述
注意:不可进行相等比较。只能进行>= <=比较
建议将这个方法写到项目中,因为有时候将时间转换成年月日,年月日时分秒字符串形式的还是非常常见的。
所以经过改造可以写成这样

const timeFlag = new Date(this.$CU.formatData(new Date)) >= new Date(开始日期) && new Date(this.$CU.formatData(new Date)) <= new Date(结束日期)
if(timeFlag) {// 显示按钮}
http://www.lryc.cn/news/230849.html

相关文章:

  • [云原生案例2.4 ] Kubernetes的部署安装 【通过Kubeadm部署Kubernetes高可用集群】
  • PP-ChatOCRv2、PP-TSv2、大模型半监督学习工具...PaddleX新特性等你来pick!
  • HarmonyOS 学习记录
  • 阿里云 业务集群的冗余、备份、监控方案
  • 无人驾驶的未来 后疫情时代如何抵达
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • 【第2章 Node.js基础】2.6 Node.js 的Buffer数据类型
  • reactive和effect,依赖收集触发依赖
  • 【C#学习】backgroundWorker控件
  • Istio学习笔记-部署模型
  • 磁盘调度算法
  • 力扣题库2. 两数相加
  • 【Linux】第十六站:进程地址空间
  • 基于Springboot的影城管理系统(有报告)。Javaee项目,springboot项目。
  • 如何在面试中胜出?接口自动化面试题安排上
  • 联邦学习研究综述笔记
  • RedisTemplate乱码问题
  • Java用户和内核交互图
  • 2023.11.14使用bootstrap制作一个简洁的前端注册登录页
  • Avatar虚拟形象解决方案,趣味化的视频拍摄与直播新体验
  • MongoDB备份与恢复以及导入导出
  • 如何挑选猫主食罐头?宠物店自用的5款猫主食罐头推荐!
  • 立哥先进研发-API安全方案
  • 小函数:Lambda表达式(Java篇)
  • RSS订阅快速连接Notion
  • VMware ubuntu 新虚拟机的创建
  • 第一篇 《随机点名答题系统》简介及设计流程图(类抽奖系统、在线答题系统、线上答题系统、在线点名系统、线上点名系统、在线考试系统、线上考试系统)
  • C# .NET6 Log4net输出日志
  • python数据结构与算法-03_链表
  • Springboot-aop的使用