Javascript 在JS中减去2个日期
我有两个日期,我想减去差值,然后比较它,在输出上返回一个简单的命令。我把它放在jsJavascript 在JS中减去2个日期,javascript,json,date,Javascript,Json,Date,我有两个日期,我想减去差值,然后比较它,在输出上返回一个简单的命令。我把它放在jsfor循环中,然后做简单的数学运算 我的信息来自API,并从JSON响应返回以下信息: -0: Object dateTime: "2018-02-14T14:27:00.000Z" //This is what I want to use +device: Object distanceSinceLastValidCoordinate: 0 +driver: Object eventCode: 4 eventR
for
循环中,然后做简单的数学运算
我的信息来自API,并从JSON响应返回以下信息:
-0: Object
dateTime: "2018-02-14T14:27:00.000Z" //This is what I want to use
+device: Object
distanceSinceLastValidCoordinate: 0
+driver: Object
eventCode: 4
eventRecordStatus: 1
eventType: 1
id: "atyhJlpX9YEyMdDHG03EA2w"
+location: Object
malfunction: "None"
origin: "Automatic"
sequence: "00000000000006a8"
state: "Active"
status: "ON"
version: "0000000000046700"
我的代码是:
for(var i=0; i < results.length; i++){
var stTime = results[i].dateTime; //Returns: 2018-02-14T14:27:00.000Z
var status = results[i].status;
var driver = results[i].driver.id;
var today = new Date(); //Returns: 2018-02-14T15:27:27.582Z
console.log("Today: ",today);
console.log("From Database: ", stTime);
var answerThis = Math.abs(stTime - today); //Retuns: NULL
console.log("Answer: ", answerThis)
if((answerThis) > 6){
console.log("Driver "+ driver +" on "+ stTime + " Has The Status Of " + status);
}
}
}),function(e){
console.error("Failed: ",e)
}
for(var i=0;i6){
控制台日志(“+stTime+”上的“驱动程序”+Driver+”的状态为“+Status”);
}
}
}),功能(e){
控制台。错误(“失败:”,e)
}
它从不出错,只给出一个空值
我的问题是,如何使用生成的dateTime值减去现在的时间,然后如果时间大于6小时,在if语句中显示console.log()
info 您可以通过(new Date().getTime()-stTime.getTime())以毫秒为单位给出差值
let timeDifferenceMilliseconds = (new Date().getTime() - stTime.getTime());
let timeDifferenceHours = timeDifferenceMilliseconds / (3600*1000);
if (timeDifferenceHours > 6) {
// Do some stuff
}
替换var stTime=results[i].dateTime
具有
var stTime=新日期(结果[i].dateTime)
及
var answerThis=新日期(Math.abs(stTime-today))代码>
减去这两个日期的毫秒数:
var stTime = new Date(results[i].dateTime);
var today = new Date();
var answerThis = Math.abs(stTime.getTime() - today.getTime());
之后,您可以将答案转换为分钟、小时、天,以及您需要的任何时间。这非常有效!它现在只显示超过6小时的结果,而不是返回所有结果!谢谢你的及时回复。很好,很高兴它能工作。如果(Date.now()-stTime>2.16e7)
,这可以简化为if(Date.now()-stTime>2.16e7)。请发布一个“工作”示例。表达式Math.abs(stTime-today)
必须返回一个数字,可以是整数或NaN。根据上下文,它不应返回null。
var stTime = new Date(results[i].dateTime);
var today = new Date();
var answerThis = Math.abs(stTime.getTime() - today.getTime());