Javascript 我的时间不工作了

Javascript 我的时间不工作了,javascript,datetime,datetime-comparison,Javascript,Datetime,Datetime Comparison,我正在检查特定的ISO日期时间是否在18:00之前 以下是简单的代码: // Define the date I want to check var targetDate = "2015-02-04T13:30:00Z"; // Parse the string into a date object var target = new Date.parse(targetDate); // Compare the target date againt a new

我正在检查特定的ISO日期时间是否在18:00之前

以下是简单的代码:

   // Define the date I want to check
    var targetDate = "2015-02-04T13:30:00Z";
    // Parse the string into a date object
    var target = new Date.parse(targetDate);
    // Compare the target date againt a new date object set to 18:00:00
    if(target < new Date().setHours(18 , 0, 0)){
        console.log("BEFORE");
    } else {
        console.log("AFTER");
    }
//定义我要检查的日期
var targetDate=“2015-02-04T13:30:00Z”;
//将字符串解析为日期对象
var target=new Date.parse(targetDate);
//将目标日期与设置为18:00:00的新日期对象进行比较
如果(目标<新日期().setHours(18,0,0)){
控制台日志(“之前”);
}否则{
控制台日志(“之后”);
}
即使我的targetDate中的时间设置为13:30:00,输出始终在之后

我已经搜索了如何比较时间,从我发现的结果来看,一个简单的比较应该是有效的


如果有人能指出我做错了什么,我将不胜感激。

测试代码会出现以下错误:

Uncaught TypeError: function parse() { [native code] } is not a constructor
这是因为“new”关键字。删除此选项可修复您的问题:

//定义我要检查的日期
var targetDate=“2015-02-04T19:30:00Z”;
//将字符串解析为日期对象
var target=Date.parse(targetDate);
//将目标日期与设置为18:00:00的新日期对象进行比较
如果(目标<新日期().setHours(18,0,0)){
控制台日志(“之前”);
}否则{
控制台日志(“之后”);

}
当您试图解析目标数据时,您不必使用
new
关键字

)

守则:

 // Define the date I want to check
 var targetDate = "2015-02-04T13:30:00Z";
 // Parse the string into a date object
 var target = Date.parse(targetDate);
 // Compare the target date againt a new date object set to 18:00:00
 if (target < new Date().setHours(18, 0, 0)) {
     alert("BEFORE");
 } else {
     alert("AFTER");
 }
//定义我要检查的日期
var targetDate=“2015-02-04T13:30:00Z”;
//将字符串解析为日期对象
var target=Date.parse(targetDate);
//将目标日期与设置为18:00:00的新日期对象进行比较
如果(目标<新日期().setHours(18,0,0)){
警惕(“之前”);
}否则{
警报(“之后”);
}
试试:

var targetDate=新日期(“2015-02-04T13:30:00Z”);
var numHours=targetDate.getHours();
如果(numHours<18){
控制台日志(“之前”);
}否则{
控制台日志(“之后”);
}

如果您可以使用ISO格式,但不想将其转换为本地时间

您可以只查看小时数子字符串

var targetDate = "2015-02-04T13:30:00Z";

var isbefore18=targetDate.substring(11,13)-18<0;

isbefore18 /*  value: (Boolean) true */
var targetDate=“2015-02-04T13:30:00Z”;

var isbefore18=targetDate。子字符串(11,13)-18David p的答案正确。日期()由日期部分和时间部分组成

new Date().setHours(18,0,0)
在今天18:00创建日期,该日期将始终大于2015年2月4日17:30,除非您有时间机器

targetDate.getHours()

返回时间部分的小时值,这听起来像是您正在查找的。

我正在输出到nodejs控制台,但由于某种奇怪的原因,它没有抛出错误
targetDate.getHours()