我想比较日期。我对每一个条件都是假的。如果第二个日期高于第一个日期,则应显示上述日期。如果第二个日期等于第一个日期则显示相等的日期。如果第二个日期低于第一个日期显示在日期之下
这是我的代码 https://jsfiddle.net/5Lps5zxh/1/
var first="22-3-2015"
var second="01-3-2015";
alert(new Date(first).getTime() > new Date(second).getTime())
if( (new Date(first).getTime() > new Date(second).getTime()))
{
alert('--')
}
每次都是假的
答案 0 :(得分:8)
查看此fiddle。 (的 MM-DD-YYYY
强>)
看看这个fiddle。 ( YYYY-MM-DD
)(推荐)
使用 MM-DD-YYYY
或 YYYY-MM-DD
格式,您将遇到 NO 问题。
这是片段。 (的 MM-DD-YYYY
强>)
var first = "03-22-2015" //MM-DD-YYYY
var second = "03-01-2015"; //MM-DD-YYYY
alert(new Date(first).getTime() + " ---- " + new Date(second).getTime());
alert(new Date(first).getTime() > new Date(second).getTime())
if ((new Date(first).getTime() > new Date(second).getTime())) {
alert('--')
}

这是片段。 (的 YYYY-MM-DD
强>)
var first = "2015-03-22" //YYYY-MM-DD
var second = "2015-03-01"; //YYYY-MM-DD
alert(new Date(first).getTime() + " ---- " + new Date(second).getTime());
alert(new Date(first).getTime() > new Date(second).getTime())
if ((new Date(first).getTime() > new Date(second).getTime())) {
alert('--')
}

答案 1 :(得分:3)
如果您尝试alert(new Date(first));
,则说它是无效日期。然后,当您执行.getTime()
时,它会返回NaN
,这永远不会超过其他时间。
答案 2 :(得分:1)
这是来自控制台:
new Date('22-3-2015').getTime()
NaN
这就是为什么它是假的。
答案 3 :(得分:0)
您需要创建日期变量,而不是尝试强制转换,
我创建了一个jsFiddle给你看
jsFiddle:https://jsfiddle.net/uc9csxk2/
Javascript
var dates = "22-3-2015";
var result = new Date(dates);
alert(result);
var first = new Date(2015,3,22);
var second = new Date(2015,3,1);
alert(first.getTime() > second.getTime())
if( first.getTime() > second.getTime())
{
alert('--')
}
基本上您的日期字符串“22-3-2015”是无效日期。
答案 4 :(得分:0)
以下代码返回true:
var first="11-13-2015"
var second="10-10-2015";
alert(new Date(first).getTime() > new Date(second).getTime())
为什么?
日期格式为MM-DD-YYYY,因此在上述情况下它返回true
答案 5 :(得分:0)
假设欧洲日期(dd-mm-yyyy)并且假设您无法将它们更改为首选yyyy-mm-dd,您可以这样做以使日期解析正确
var first = "22-3-2015"
var second = "01-3-2015";
function makeDate(str) {
var parts = str.split("-");
return new Date(parts[2], parts[1] - 1, +parts[0])
}
alert(makeDate(first) +">"+ makeDate(second))
if ((makeDate(first).getTime() > makeDate(second).getTime())) {
alert('--')
}