.isAfter返回甚至为false

时间:2019-01-22 19:03:03

标签: javascript datetime momentjs eonasdan-datetimepicker

我正在将momentjsEonasdan插件一起使用,并且尝试检查end的日期是否小于start的日期,为此,我m使用isAfter方法:

var start = moment($('#start-datetime').val());
var end = moment($('#end-datetime').val());
console.log((start).isAfter(end));   

这将返回false,其值是这样定义的:

  • 开始:2019年7月2日19:58
  • 结束:31/01/2019 19:58

1 个答案:

答案 0 :(得分:1)

尝试将特定格式的字符串和语言环境传递到moment,以确保正确解析了该字符串:

moment(..., "DD/MM/YYYY HH:mm", "en");

moment.locale("en");
...
moment(..., "DD/MM/YYYY HH:mm");

演示:

moment.locale("en");
$("#test-button").click(function() {
  var start = moment($('#start-datetime').val(), "DD/MM/YYYY HH:mm");
  var end = moment($('#end-datetime').val(), "DD/MM/YYYY HH:mm");
  console.log((start).isAfter(end));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
<input id="start-datetime" type="text" value="07/02/2019 19:58">
<input id="end-datetime" type="text" value="31/01/2019 19:58">
<button id="test-button">Test</button>