代码之家  ›  专栏  ›  技术社区  ›  Vid

比较简单的日期字符串(例如console.log(“24.3.2018”<“20.3.2017”))

  •  0
  • Vid  · 技术社区  · 6 年前

    我想知道比较标题中提到的两个日期字符串值的方法是否合法。我尝试过多种不同的比较方法,它们似乎都有效。

    console.log("23.3.2018" > "24.3.2018")
    //VM16380:1 false
    //undefined
    console.log("23.3.2018" < "24.3.2018")
    //VM16381:1 true
    //undefined
    console.log("24.3.2017" < "24.3.2018")
    //VM16384:1 true
    //undefined
    console.log("24.3.2018" < "20.3.2017")
    //VM16385:1 false

    谢谢您!

    2 回复  |  直到 6 年前
        1
  •  1
  •   NullPointer    6 年前

    你可以分析你的 String date Date Object 并进行比较:

    function CompareDate(dateStr1,dateStr2) {
           var dateArry1 = dateStr1.split(".");
            var dateArry2 = dateStr2.split(".");
            //JavaScript counts months from 0 index so we have to do -1:January - 0, February - 1, and so on..... 
           var dateOne = new Date(dateArry1[2], dateArry1[1]-1, dateArry1[0]); //Year, Month, Date
          var dateTwo = new Date(dateArry2[2], dateArry2[1]-1, dateArry2[0]); //Year, Month, Date
          if (dateOne > dateTwo) {
              console.log("Date One is greather then Date Two.");
              return true;
           }else if(dateOne < dateTwo) {
             console.log("Date Two is greather then Date One.");
             return false;
          }else if(dateOne.toDateString() === dateTwo.toDateString()) {
             console.log("Date are same.");
             return false;
          }
          return false;
     }
    
    console.log(CompareDate("23.3.2018","24.3.2018"));
    //VM16380:1 false
    //undefined
    console.log(CompareDate("23.3.2018","24.3.2018"));
    //VM16381:1 true
    //undefined
    console.log(CompareDate("24.3.2017", "24.3.2018"));
    //VM16384:1 true
    //undefined
    
    console.log(CompareDate("24.03.2018" , "20.3.2017"));
    console.log(CompareDate("24.3.2018" , "24.03.2018"));
    //VM16385:1 false

    警告!

    在某些浏览器中,没有前导零的月份或天数可能会产生错误:

    var d = new Date("2015-3-25");

    所以最好准备一下 zero 如果长度为 1 .

        2
  •  0
  •   AlexiAmni    6 年前

    您可以这样比较javascript中的日期值:

    var start= new Date('2018.3.23');
    var end= new Date('2018.3.24');
     if (start < end) 
     {
      console.log(true);
     }