带有AND和dates的JavaScript if语句

带有AND和dates的JavaScript if语句,javascript,Javascript,我有这样一句话: //这是我从输入字段中选择的日期,并将其时间设置为上午12点 var date=新日期(new date().setHours(0,0,0,0)); 控制台日志(日期); var currentDate=新日期(); console.log(当前日期); 如果(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime()&¤tDate.getTime()>(新日期(currentDate.setHours

我有这样一句话:

//这是我从输入字段中选择的日期,并将其时间设置为上午12点
var date=新日期(new date().setHours(0,0,0,0));
控制台日志(日期);
var currentDate=新日期();
console.log(当前日期);
如果(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime()&¤tDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime()){
log(“它工作!!!”);
}
否则{
log(“未按预期工作:(”);
}
这个怎么样:

var-date=新日期();
var today1130=新日期(new Date().setHours(11,30));
console.log(“输入日期为今天:”,date.toDateString()==today1130.toDateString());
console.log(“输入日期在今天11:30之后:”,date>today1130);
这个怎么样:

var-date=新日期();
var today1130=新日期(new Date().setHours(11,30));
console.log(“输入日期为今天:”,date.toDateString()==today1130.toDateString());
log(“输入日期在今天11:30之后:”,日期>今天1130);
var date=new date(new date().setHours(0,0,0,0));
控制台日志(日期);
var currentDate=新日期();
console.log(当前日期);
如果(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime()&¤tDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime()){
log(“它工作!!!”);
}
否则{
log(“未按预期工作:(”);
}
log(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime());
console.log(currentDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime());
var date=new date(new date().setHours(0,0,0,0));
控制台日志(日期);
var currentDate=新日期();
console.log(当前日期);
如果(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime()&¤tDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime()){
log(“它工作!!!”);
}
否则{
log(“未按预期工作:(”);
}
log(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime());

console.log(currentDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime());
我认为它不起作用的原因是因为在上午11:30到下午12:00之间的时间计算有误。试试这个,让我知道:)

var todaysnon=new Date();
var nextNoon=新日期();
今日凌晨11,30,0,0,;

如果(今天上午11:30到下午12:00之间的时间计算有误,我想它不起作用的原因是。试试这个,让我知道:)

var todaysnon=new Date();
var nextNoon=新日期();
今日凌晨11,30,0,0,;

如果(今天)经过一些有趣的调试,我终于找到了您的问题。

那条线,

date.getTime()==new date(currentDate.setHours(0,0,0,0)).getTime()
在您的第一个条件中正在使用代码
currentDate.setHours(0,0,0,0)
更改您在上面使用的currentDate变量

所以,如果你把它们都拿走,它就不起作用了

下面是一个不工作的代码段的示例

var date=new date(new date().setHours(0,0,0,0));
控制台日志(日期);
var currentDate=新日期();
如果(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime()&¤tDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime()){
log(“它工作!!!”);
}
否则{
log(“未按预期工作:(”);

}
经过一些有趣的调试,我终于找到了您的问题。

那条线,

date.getTime()==new date(currentDate.setHours(0,0,0,0)).getTime()
在您的第一个条件中正在使用代码
currentDate.setHours(0,0,0,0)
更改您在上面使用的currentDate变量

所以,如果你把它们都拿走,它就不起作用了

下面是一个不工作的代码段的示例

var date=new date(new date().setHours(0,0,0,0));
控制台日志(日期);
var currentDate=新日期();
如果(date.getTime()==新日期(currentDate.setHours(0,0,0,0)).getTime()&¤tDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime()){
log(“它工作!!!”);
}
否则{
log(“未按预期工作:(”);

}
第二次检查
currentDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime())
返回到
false
。这就是为什么它返回到“未按预期工作:(”。您试图在那里检查什么?我正在从表单(var Date)的输入字段中选择日期)并且需要检查是否是今天如果是,那么我需要检查它是否已经超过11:30并阻止提交此日期的表单。第二次检查
currentDate.getTime()>(新日期(currentDate.setHours(11,30,0,0)).getTime())
返回到
false
。这就是为什么它返回到“未按预期工作:(”。您想在那里检查什么?我正在从表单(var date)的输入字段中选择日期,需要检查它是否是今天。如果是,则需要检查它是否已经超过11:30,并阻止提交此日期的表单。就是这样。谢谢you@PiotrSmyda,很高兴能帮助你。:)没错,谢谢you@PiotrSmyda,很高兴能帮助你。:)
var todaysNoon = new Date();
var nextNoon = new Date();

todaysNoon.setHours(11,30,0,0);
if (todaysNoon <= nextNoon){ nextNoon.setDate(nextNoon.getDate()+1); }
nextNoon.setHours(11,30,0,0);

if (todaysNoon.getTime() <= new Date(nextNoon.setHours(0, 0, 0, 0)).getTime() && todaysNoon.getTime() <= new Date(nextNoon.setHours(0, 0, 0, 0)).getTime()) {
    console.log("It works!!!");
} else {
    console.log("That didn't work as expected :(");
}