簡體   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