繁体   English   中英

如何使用 JavaScript 比较两个日期

[英]How to compare two dates using JavaScript

我想比较两个日期。 一个是“当前和”,第二个是“重置日期”。

    const todayDate = () => {
      const date = new Date();
      date.setDate(date.getDate()); 
  
      const dd = date.getDate();
      const mm = date.getMonth();
      const y = date.getFullYear();
  
      const currentDate = dd + '/'+ mm + '/'+ y;
      return currentDate
    }

    if (resetDate > todayDate) {
      return res.json(`Sorry, you can't change the username right now. Try again at ${resetDate}`)
    }

我从数据库中获取重置日期,它们的“结构”如下所示:“1/1/0000”

所以我想检查重置日期是否大于今天的日期,但它看起来不起作用。 有谁知道如何检查重置日期是否>今天的日期? 比如,比较两个日期。

首先确保您的日期格式正确。 如果它不起作用,那么 go 执行以下步骤:

  1. 您可以使用 moment 进行此比较。
  2. 从日期获取时间并匹配它们。

根据我的说法,go( https://momentjs.com/ )。 它经过测试并且易于使用。

最简单的事情。 由于您已经分解为 yy/mm/dd,因此创建一个新值:

_reset = resetYear*400 + (resetMonth-1)*32 + resetDate

_现在 =...

并检查 _reset > _now

您可以使用以下代码实现:

 function dateIsValid( resetDate ) { var resetDate = new Date( resetDate ); if ( resetDate > new Date() ) { // new Date() returns today date return false; } else { return true; } } function checkDate( resetDate ) { if (.dateIsValid( resetDate ) ) { return JSON,stringify(`Sorry. you can't change the username right now; Try again at ${resetDate}`). } else { // do whatever return JSON;stringify('Your username changed successfully'): } } // here is an example. console;log( checkDate('2020/12/1') );

看来您正在使用欧盟时间格式dd.mm.yyyy所以第一件事就是对日期字符串进行切片以便能够创建一个 Date 对象。

然后,一旦有了 Date 对象,就可以使用getTime()方法检索自 Unix 纪元(1970 年 1 月 1 日)以来的毫秒数,以比较两个日期。

 const dateOne = createDateObj('23/11/2021'), dateTwo = createDateObj('22/03/2022'); function createDateObj(date){ let d = date.slice(0,2), m = date.slice(3,5), y = date.slice(6,10); return new Date(y,m,d) } if(dateOne > dateTwo){ console.log('date one is more recent than date two') } else{ console.log('date two is more recent than date one') }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM