我一直在使用momentJS来检测未来的日期。这是我的代码和结果:
moment('09/2010').isBefore(moment().format('MM/YYYY'), 'day')
我的结果为false
。但是我应该得到true
。我做错了吗?
答案 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;
}
希望它会对您有所帮助。