如何在Javascript中比较日期?
我有以下情况: 我有一个特定的函数运行一个循环并做一些事情,错误条件可能会使它退出该循环。 我希望能够检查循环是否仍在运行 为此,我要为每个循环运行:如何在Javascript中比较日期?,javascript,date,Javascript,Date,我有以下情况: 我有一个特定的函数运行一个循环并做一些事情,错误条件可能会使它退出该循环。 我希望能够检查循环是否仍在运行 为此,我要为每个循环运行: LastTimeIDidTheLoop = new Date(); 在另一个函数中,每30秒运行一次SetInterval,我想基本上这样做: if (LastTimeIDidTheLoop is more than 30 seconds ago) { alert("oops"); } 我该怎么做 谢谢 那么: newDate = new
LastTimeIDidTheLoop = new Date();
在另一个函数中,每30秒运行一次SetInterval,我想基本上这样做:
if (LastTimeIDidTheLoop is more than 30 seconds ago) {
alert("oops");
}
我该怎么做
谢谢 那么:
newDate = new Date()
newDate.setSeconds(newDate.getSeconds()-30);
if (newDate > LastTimeIDidTheLoop) {
alert("oops");
}
创建日期对象并使用setSeconds()
JS date对象在内部存储毫秒,将它们彼此相减可以正常工作:
var diffSeconds = (new Date() - LastTimeIDidTheLoop) / 1000;
if (diffSeconds > 30)
{
// ...
}
您可以这样做:
var dateDiff = function(fromdate, todate) {
var diff = todate - fromdate;
return Math.floor(diff/1000);
}
然后:
if (dateDiff(fromdate, todate) > 30){
alert("oops");
}
它只是将30连接到末尾,例如“Sun Dec 07 2008 16:45:19 GMT-0500(EST)30”是的,你是对的!我已经用修改过的版本对它进行了更正。这不起作用,它只是将时间设置为30秒,比如“1:15:30”如果要添加30秒,则执行controlDate.setSeconds(controlDate.getSeconds()+30);
if (dateDiff(fromdate, todate) > 30){
alert("oops");
}