比较两个日期不正常

时间:2015-10-27 09:24:07

标签: javascript momentjs

我试图比较两个日期:

开始

  

2015年10月29日星期四18:00:00 GMT

结束

  

2015年10月30日星期五00:00:00 GMT

简单地

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

但条件不起作用。 查看我的jsfiddle

5 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

  

现在你正在比较字符串。要比较moment中的日期,请使用moment()方法,如下所示:

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

试试这个小提琴:http://jsfiddle.net/a83ob6dy/4/

答案 3 :(得分:0)

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

此外,您应该在解析期间提供输入格式字符串。否则,您将回退到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

答案 4 :(得分:-1)

试试这个

$(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>