Javascript 比较两个工作不正常的日期

Javascript 比较两个工作不正常的日期,javascript,momentjs,Javascript,Momentjs,我试着比较两个日期: 开始 2015年10月29日星期四格林威治标准时间18:00:00 结束 2015年10月30日星期五00:00:00 GMT 简单地 if(end > start) { alert('work'); } else { alert('not work'); } 但这种情况似乎不起作用。 看我的 jsiddle如果要比较字符串,应该比较Date对象 现在您正在比较字符串。要比较moment中的日期,请使用moment()方法,如下所示: 试试这把小提琴:试

我试着比较两个日期:

开始

2015年10月29日星期四格林威治标准时间18:00:00

结束

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

简单地

if(end > start)
{
   alert('work');
}
else
{
   alert('not work');
}
但这种情况似乎不起作用。 看我的


jsiddle

如果要比较字符串,应该比较
Date
对象

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

试试这把小提琴:

试试这个
$(函数(){
开始=时刻(2015年10月29日星期四格林威治标准时间18:00:00)。格式(“YYYY-MM-DD”)+“”+“18:00”)。格式(“ddd,D MMM YYYY HH:MM:ss”)+“格林威治标准时间”;
结束=时刻(2015年10月30日星期五00:00:00 GMT)。格式(“YYYY-MM-DD”)+“00:00”)。格式(“ddd,D MMM YYYY HH:MM:ss”)+“GMT”;
$('#divLocal').html(start);
$('#divLocal2').html(完);
if(新日期(结束)>新日期(开始))
{
log(“工作”);
}
其他的
{
log(“不工作”);
}
});

您似乎在尝试比较格式化的字符串,而不是
moment
Date
对象。如果确实在使用,则应使用
isBefore
isAfter
函数而不是比较运算符来比较
moment
对象

此外,您应该在解析期间提供输入格式字符串。否则,您将返回到
日期
构造函数,并将在控制台中收到一条弃用警告消息

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

还请注意,我使用
moment.utc
函数,以utc明确解释输入,而不是依赖“GMT”缩写。这有点重要

$(函数(){
var fmt=“ddd,D MMM yyy HH:mm:ss[GMT]”;
开始=utc时间(“2015年10月29日星期四格林威治标准时间18:00:00”,fmt);
结束=utc时间(“2015年10月30日星期五00:00:00 GMT”,fmt);
$('#divLocal').html(start.format(fmt));
$('#divLocal2').html(end.format(fmt));
if(结束。isAfter(开始)){
警惕(“工作”);
}否则{
警惕(“不工作”);
}
});

if (new Date(end) > new Date(start)) {}
start=moment(start);
end=moment(end);