【问题标题】:MomentJS checking isBefore without dayMomentJS 检查 isBefore 没有一天
【发布时间】:2018-03-28 13:04:53
【问题描述】:

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

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

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

【问题讨论】:

  • "09/2010" 不是有效的日期格式,是吗?它应该是什么意思?

标签: javascript angular momentjs


【解决方案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>

【讨论】:

    【解决方案2】:

    你有 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;
            }
    

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-01
      • 2021-12-11
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      相关资源
      最近更新 更多