首页 > 解决方案 > 自从在 mongoDB 中放入条目以来已经有多少天了?

问题描述

我有这个猫鼬模型。

const GoalSchema = new Schema({
    .
    .
    .
    .
    Date: {
        type: Date,
        default: Date.now
    }
    .
    .
    .
    .
});

我试图弄清楚自创建此对象以来已经过去了多长时间,我尝试了以下方法:

const oneDay = 1000 * 60 * 60 * 24 ;
const temp = new Date();
const diff = (temp - goal.Date.getTime());
diff /= oneDay;

这里的目标是我从猫鼬那里收到的目标对象。你能帮我算一下已经过去了多少天吗?

标签: node.jsexpressmongoose

解决方案


使用 Mongoose 时间戳功能。

const GoalSchema = new Schema({
    yourFields: String
}, {timestamps: true});

这将自动在 MongoDB 文档上创建 createdAt 和 updatedAt 字段。

然后得到日期之间的差异。使用以下代码

let createdDate = new Date(doc.createdAt);
let currentDate = new Date();
let timeDif = Math.abs(createdDate.getTime() - currentDate.getTime());

let differentDays = Math.ceil(timeDifference / (1000 * 3600 * 24));

或者你可以使用Moment.js

let createdDate = moment(doc.createdAt);
let currentDate = moment()
createdDate.diff(currentDate, 'days')

推荐阅读