使用if语句不起作用比较两个日期--javascript + nodejs

时间:2018-01-15 11:35:27

标签: javascript angularjs node.js date datetime

这是我的下面的代码:

var date = new Date().toLocaleString();
console.log(date); // output: 2018-01-15 16:39:00

var schedule = 2018-01-15 16:39:00 (which is coming from my html form, i putting this date in one input box and getting into variable called schedule).
console.log(schedule); // output: 2018-01-15 16:39:00


if(date === schedule) {
console.log('date is matched');
} else {
 console.log('error');
}

这将正确显示为输出://'日期匹配' (我在没有任何日期选择器的输入框中键入此日期。)

我的问题是如果我使用日期选择器执行相同的代码而不是在输入框中写日期。

我的代码:

var date = new Date().toLocaleString();
console.log(date); // output: 2018-01-15 16:39:00

    var schedule = 2018-01-15 16:39:00 (which is coming from my html form,using date picker).
    console.log(schedule); // output: 2018-01-15 16:39:00


    if(date === schedule) {
    console.log('date is matched');
    } else {
     console.log('error');
    }

现在我在控制台中收到错误。 我正在使用的日期选择器https://www.npmjs.com/package/angularjs-datetime-picker

2 个答案:

答案 0 :(得分:0)

如何反过来做:从datepicker的输出构造一个Date对象并比较时间戳。

var date = new Date('2018-01-15 16:39:00');

var schedule = new Date(dateFromYourForm); //From Date picker
   
if(date.getTime() === schedule.getTime()) {
  console.log('date is matched');
} else {
  console.log('error');
}

答案 1 :(得分:-1)

schedule内的日期不是字符串,是日期,而date中的日期是字符串,因为您在第一行使用了toLocaleString()。比较不起作用,因为您还使用严格相等运算符(===)来检查变量的类型,而不是只检查值。