检查日期是否早24小时

时间:2018-07-18 14:54:51

标签: javascript date

我有一个创建的日期。我想运行一个if / switch语句,以了解当前的日期和时间是否比创建的日期早24小时以上。

如果创建的日期早于24小时,请执行一些操作,如果少于24小时,请执行其他操作。

let now = +new Date();

// This is returned as: July 18, 2018 at 3:48:00 AM UTC+1
let createdAt = +doc.data().created_at;

const oneDay = 60 * 60 * 24;
var compareDatesBoolean = (now - createdAt) > oneDay;

任何指导都将非常感谢! :)

5 个答案:

答案 0 :(得分:9)

创建一个小时的示例,请参考此内容,然后将其更改为24小时

const OneHourAgo= (date) => {
    const hour= 1000 * 60 * 60;
    const hourago= Date.now() - hour;

    return date > hourago;
}

简单的一个:-

var OneDay = new Date().getTime() + (1 * 24 * 60 * 60 * 1000)
                                     day hour  min  sec  msec
if (OneDay > yourDate) {
    // The yourDate time is less than 1 days from now
}
else if (OneDay < yourDate) {
    // The yourDate time is more than 1 days from now
}

答案 1 :(得分:0)

添加此 一天的常量= 60 * 60 * 24 * 1000(毫秒)。由于JS会将2个Datetime对象之间的差转换为毫秒。我认为应该可以

答案 2 :(得分:0)

也许是这样吗?

const now = Date.now();

// if it's a firebase timestamp
const createdAt = doc.data().created_at.toMillis(); 

const oneDay = 24 * 60 * 60 * 1000;

const isMoreThanADay = (now - createdAt) > oneDay;

我不知道firebase timestamps是依靠toMillis方法的文档来实现的。

答案 3 :(得分:0)

在这种情况下,使用时间会容易得多,您可以尝试以下方法:

    let hours = moment().diff(moment(yourDateString), 'hours');
    let days = moment().diff(moment(yourDateString), 'days');

它将为您提供1,2,5,0等整数值,因此您可以轻松使用条件检查,如:

if(hours >= 24) { your code }

if(days >= 1) { your code }

另外,还有一件事是您可以获得时差的更准确结果(以小数形式表示,如1.2、1.5、0.7等),以得到这种结果,我们需要传递第3个参数,即对于精确结果而言为true使用此语法:

let hours = moment().diff(moment(yourDateString), 'hours', true);

让我知道您是否还有任何疑问

答案 4 :(得分:0)

如果您要检查数据库(以mysql格式或其他格式)中的任何日期不早于24小时(如果发生重置密码链接的情况),那么可以使用以下逻辑,在我的情况下,{{1} }是将值保存在数据库中

user.passwordTokenTimestamp