比较两个日期不能正常工作
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>
您似乎在尝试比较格式化字符串,而不是 moment
或 Date
对象。如果您确实在使用 moment.js,那么您应该只使用 isBefore
或 isAfter
函数来比较 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>
我正在尝试比较两个日期:
开始
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
, Usemoment()
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>
您似乎在尝试比较格式化字符串,而不是 moment
或 Date
对象。如果您确实在使用 moment.js,那么您应该只使用 isBefore
或 isAfter
函数来比较 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>