繁体   English   中英

检查日期是否为 24 小时

[英]Check if a date is 24 hours old

我有一个创建日期。 我想运行 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;

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

一小时创建示例参考此然后将其更改为 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
}

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

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

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

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

if(hours >= 24) { your code }

或者

if(days >= 1) { your code }

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

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

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

也许是这样的?

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;

我不知道我依赖于toMillis方法的文档的toMillis 时间戳

如果您想检查来自数据库的任何日期(以 mysql 格式或任何其他格式)不超过 24 小时(如果过期重置密码链接),您可以使用以下逻辑,其中在我的情况下user.passwordTokenTimestamp是值保存D B

let now = +new Date();
let createdAt = +new Date(Date.parse(user.passwordTokenTimestamp.toString()));
var oneDay = 24 * 60 * 60 * 1000;

if ((now - createdAt) > oneDay) {
  const errors = {
    User: 'Password reset token has expired, please resend forgot password email !',
  };
  throw new HttpException({ errors }, HttpStatus.UNPROCESSABLE_ENTITY);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM