MomentJS检查是没有一天的

时间:2018-03-28 13:04:54

标签: javascript angular momentjs

我一直在使用momentJS来检测未来的日期。这是我的代码和结果:

moment('09/2010').isBefore(moment().format('MM/YYYY'), 'day')

我的结果为false。但是我应该得到true。我做错了吗?

2 个答案:

答案 0 :(得分:1)

您的输入('09/2010')未采用可识别格式(ISO 8601或RFC 2822),因此您必须使用moment(String, String)

您可以使用startOf('month')获取当月开头的时刻对象。

console.log( moment('09/2010', 'MM/YYYY').isBefore(moment().startOf('month'), 'day')) ;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>

答案 1 :(得分:0)

您有 moment('09/2010') ,但没有格式是没有道理的。您必须为此日期提供格式,例如 moment('09/2010', 'MM/YYYY') 。 您应该看到以下代码:

if(moment('09/2010', 'MM/YYYY').isBefore(moment().startOf('month'),'day')){
    /* 
     * Do something here
     */ 
    return true;

}else{
      /* 
       * Do something here
       */

    return false;
}

您可以使用以下代码进行理解:

if (moment('09/2010','MM/YYYY').isBefore('10/2010','MM/YYYY')) {
                      /* 
                       * Do something here
                       */ 

                    return true;
   }else{
                      /* 
                       * Do something here
                       */

                    return false;
        }

希望它会对您有所帮助。