[英]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.