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

使用if语句比较两个日期不起作用-javascript+;nodejs,javascript,angularjs,node.js,date,datetime,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)

下面是我的代码:

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');
    }
现在我在控制台中遇到错误。
我正在使用的日期选择器

换一种方式如何:从日期选择器的输出构造一个日期对象,并比较时间戳

var日期=新日期('2018-01-15 16:39:00');
var计划=新日期(dateFromYourForm)//起始日期选择器
if(date.getTime()==schedule.getTime()){
console.log(“日期匹配”);
}否则{
console.log('error');

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

好吧,对于我来说
new Date()。toLocaleString()
打印出
“15/01/2018,12:39:45”
,因此,由于
/
-
的差异,它们不可能相等。我得到的两个值都是-,但如果我在没有日期选择器的情况下输入它的工作,否则不会
就是这样做的:它将日期转换为根据用户的区域设置格式化的字符串。的输出完全依赖于实现,并在不同的实现中给出不同的结果。您真正想做的是生成一个字符串,与日期选择器中的值进行比较。如果我只输入==而不是===它是否有效?是的,它应该有效。新日期可以每秒动态更改/@MohamedSameer它返回日期的数字表示形式。这样,您就不必担心字符串格式。我不想将静态硬代码放入新日期()如何动态执行?@MohamedSameer只需从html输入中传递日期
新日期('2018-01-15 16:39:00')
的结果在至少一个常见浏览器中是无效日期,请参阅