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

比较nodejs if语句中的日期

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

    我正在使用nodejs/javascript,尝试比较两个日期,以便在日期在设置日期之前应用特定的样式。

    以下是我的资料:

    var d = new Date();
    var date = d.getMonth()+1+'/'+d.getDate()+'/'+(d.getFullYear().toString().substr(-2)-1);
    
    var da = new Date('1/4/18');
    var da_test = da.getMonth()+1+'/'+da.getDate()+'/'+(da.getFullYear().toString().substr(-2));
    
    if(da_test < date) {
        // do something
    }
    

    date_test 正在返回一年前的今天, 1/23/18 . 我已经设定了另一个日期,它将自己与之比较,以 1/4/18 . 虽然这应该是正确的,但出于某种原因,如果语句运行的时候就不应该是这样。但是,如果我把日期改成 1/2/18 ,然后返回true。这是怎么回事?如何改变它?如果它是18年1月23日之前的某个日期,它将返回真值?

    2 回复  |  直到 6 年前
        1
  •  1
  •   P Varga    6 年前

    您可以这样比较这两个日期:

    const d1 = new Date('1/23/18');
    const d2 = new Date('1/4/18');
    if (d2 < d1) ...
    

    在代码示例中,您正在比较两个 String S

        2
  •  0
  •   Steven Spungin    6 年前

    您可以比较自epoch以来的毫秒数(自1970年1月1日起的毫秒数00:00:00)

    const d1 = new Date('1/23/18');
    const d2 = new Date('1/4/18');
    
    if (d2.getTime() < d1.getTime()) {
    }
    

    您还可以比较ISO日期字符串

    const d1 = new Date('1/23/18');
    const d2 = new Date('1/4/18');
    
    if (d2.toISOString() < d1.toISOString()) {
    }