检查日期是否为24小时

ETX*_*ETX 5 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;
Run Code Online (Sandbox Code Playgroud)

这里的任何指导都会非常感谢你!:)

小智 15

添加这个const oneday = 60 * 60 * 24 * 1000 (milliseconds)。因为,JS 将 2 个 Datetime 对象之间的差异转换为毫秒。我认为这应该有效


Hit*_*ani 11

创建示例一小时请参阅此项,然后将其更改为24小时

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

    return date > hourago;
}
Run Code Online (Sandbox Code Playgroud)

简单的一个: -

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
}
Run Code Online (Sandbox Code Playgroud)

  • 它可以被简化,没有 1 像 (24*60*60*1000) (5认同)

小智 11

在这种情况下,使用 moment 会容易得多,你可以试试这个:

    let hours = moment().diff(moment(yourDateString), 'hours');
    let days = moment().diff(moment(yourDateString), 'days');
Run Code Online (Sandbox Code Playgroud)

它会给你像 1,2,5,0etc 这样的整数值,所以你可以很容易地使用条件检查,比如:

if(hours >= 24) { your code }
Run Code Online (Sandbox Code Playgroud)

或者

if(days >= 1) { your code }
Run Code Online (Sandbox Code Playgroud)

此外,还有一件事是您可以获得更准确的时间差结果(以小数形式,如 1.2,1.5,0.7 等)来获得这种结果,我们需要传递第三个参数,即对于精确结果为真,请使用以下语法:

let hours = moment().diff(moment(yourDateString), 'hours', true);
Run Code Online (Sandbox Code Playgroud)

如果您有任何进一步的查询,请告诉我