比较两个日期不能正常工作

Compare two date not working properly

我正在尝试比较两个日期:

开始

Thu, 29 Oct 2015 18:00:00 GMT

结束

Fri, 30 Oct 2015 00:00:00 GMT

简单

if(end > start)
{
   alert('work');
}
else
{
   alert('not work');
}

但是条件降到不行。 看我的 jsfiddle

if (new Date(end) > new Date(start)) {}

jsfiddle http://jsfiddle.net/a83ob6dy/5/

你尝试比较字符串,你应该比较 Date 个对象

Right now you are comparing strings. To compare dateds in moment, Use moment() method instead like this:

start=moment(start);
end=moment(end);

试试这个 fiddle:http://jsfiddle.net/a83ob6dy/4/

试试这个

$(function(){
    start = moment(moment("Thu, 29 Oct 2015 18:00:00 GMT").format("YYYY-MM-DD") + ' ' + "18:00").format("ddd, D MMM YYYY HH:mm:ss") + " GMT";
    end = moment(moment("Fri, 30 Oct 2015 00:00:00 GMT").format("YYYY-MM-DD") + ' ' + "00:00").format("ddd, D MMM YYYY HH:mm:ss") + " GMT";
    $('#divLocal').html(start);
    $('#divLocal2').html(end);
    if (new Date(end) > new Date(start))         
    {
     snippet.log("work");
    }
    else
    {
     snippet.log("not work");
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script>
<div id="divLocal"></div>    
<div id='divLocal2'></div>

您似乎在尝试比较格式化字符串,而不是 momentDate 对象。如果您确实在使用 moment.js,那么您应该只使用 isBeforeisAfter 函数来比较 moment 对象,而不是比较运算符。

此外,您应该在解析期间提供 input 格式字符串。否则,您将回退到 Date 构造函数,并会在您的控制台中收到弃用警告消息。

在下面的示例中,fmt 被定义一次,然后用作输入格式和输出格式。 (这是 RFC822 格式,您应该尽量避免使用这种格式。如果可能,请改用 ISO8601 格式。)

另请注意,我使用 moment.utc 函数来显式解释 UTC 格式的输入,而不是依赖 "GMT" 缩写。这有点重要。

$(function() {
  var fmt = "ddd, D MMM YYYY HH:mm:ss [GMT]";
  start = moment.utc("Thu, 29 Oct 2015 18:00:00 GMT", fmt);
  end = moment.utc("Fri, 30 Oct 2015 00:00:00 GMT", fmt);
  $('#divLocal').html(start.format(fmt));
  $('#divLocal2').html(end.format(fmt));

  if (end.isAfter(start)) {
    alert("work");
  } else {
    alert("not work");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
<div id="divLocal"></div>
<div id='divLocal2'></div>

(Updated jsFiddle)