Javascript:getDate()加上一个if语句

Javascript:getDate()加上一个if语句,javascript,if-statement,Javascript,If Statement,我试图在javascript上构建一个if语句 if (nextProcessingDate > today ) { //do something } nextProcessingDate分配了一个时间戳,即2014年7月9日12:10:17 我使用以下代码将今天的时间戳分配给today变量 /*script start*/ var today = new Date(); var dd = today.getDate(); var mm = today.ge

我试图在javascript上构建一个if语句

if (nextProcessingDate > today ) {
  //do something
}
nextProcessingDate分配了一个时间戳,即2014年7月9日12:10:17

我使用以下代码将今天的时间戳分配给today变量

/*script start*/

    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth() + 1; //January is 0!
    var yyyy = today.getFullYear();

    var s = today.getSeconds();
    var m = today.getMinutes();
    var h = today.getHours();

    if (dd < 10) {
        dd = '0' + dd
    }

    if (mm < 10) {
        mm = '0' + mm
    }
    if (s < 10) {
        s = '0' + s
    }
    if (m < 10) {
        m = '0' + m
    }
    if (h < 10) {
        h = '0' + h
    }

    today = dd + '/' + mm + '/' + yyyy + ' ' + h + ':' + m + ':' + s;

/*script end*/
谢谢你的帮助,这是小提琴链接

更新 因此,这里是更新的小提琴,它似乎在一定程度上起作用


现在的问题是,当processingdate时间戳等于或超过24小时后,它只返回true,我需要在上午9:30测试它,在这种情况下,它返回false


将时间从下一个处理日期中剥离是否会解决问题?

您绝对不应该使用字符串来比较日期

您可以尝试从nextProcessingDate创建日期对象,然后:

var nextProcessingDate  = '09/07/2014 12:10:17';
var d = Date.parse(nextProcessingDate);
if (d > (new Date().getTime() + (1000 * 60 * 60 * 24))) {
       alert("after");
} else {
       alert("before");
}

在JavaScript中,日期处理是一个难题,一旦考虑到跨越午夜、夏时制变化和闰日的时间段,编写自己的解决方案就变得非常棘手

我建议选择一个已建立的数据处理库来完成这类工作

我一直在使用它,发现它非常棒

您的代码将变成:

if(moment(nextProcessingDate).isAfter(moment(today).add('days',1))) {
  // do something
}
或者更简洁地说:

if(moment('09/07/2014 14:05:17').isAfter(moment().add('days',1))) {
  // do something
}
var dd=today.getDate()之前可以使您的日期显示在今天之后的一天

将在秒后添加1

如果你只是想检查一个令人兴奋的时间戳是否大于今天的日期+1天,你应该像你在这个月所做的那样。所以如果我09岁的那天,dd会变成10岁

如果我没弄错你的问题,试试这个:

var dd = today.getDate() + 1;

使用
setDate
检查此选项。选中此项,不要将日期作为字符串进行比较。一个什么?1毫秒?谢谢Dan,恐怕我不能使用任何库。如果我将nextProcessingDate更改为08/07/2014 11:00:17,它仍然会显示after而不是Before看到这把小提琴-08/07/2014 11:00:17是2014年8月7日-我得到after…现在的问题是,它只返回真的processingdate时间戳等于或超过24小时,我需要在上午9:30测试它,在这种情况下它返回false,我想是因为从现在起不是一整天了吧?
today.setDate(today.getDate() + 1);
 if (nextProcessingDate > (today + 1){
   //do something
}
var dd = today.getDate() + 1;