Javascript 比较两个工作不正常的日期
我试着比较两个日期: 开始 2015年10月29日星期四格林威治标准时间18:00:00 结束 2015年10月30日星期五00:00:00 GMT 简单地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()方法,如下所示: 试试这把小提琴:试
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);