最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

在mongoose架构默认日期值中将月份添加到当前日期

运维笔记admin11浏览0评论

在mongoose架构默认日期值中将月份添加到当前日期

在mongoose架构默认日期值中将月份添加到当前日期

我们有一个像这样的猫鼬模式:

var sampleSchema = new Schema({
    fieldABC: String,
    expireAfter1Month:{
        type: Date,
        default: new Date() + 1 month
    }
});

expireAfter1Month的默认值应设置为一个月后的日期值。

我有这些:

  • Mongoose date field - Set default to date.now + N days
  • Set default date in Mongoose document to now + [some increment]

如何在mongoose架构默认日期值中添加月份到当前日期?

也许我可以这样做

default: +new Date() + 30*24*60*60*1000

但是,我想知道是否有更好/优化的方法?

回答如下:

基于您发布的其中一个链接的答案

即yaazkssvpoi

https://stackoverflow/a/30525690/5053002

例如,如果你想要的话,从1月29日/ 30日/ 31日到2月28日(当然是闰年29日),从3月31日,5月,8月或10月到3月30日,6月,9月,一个月和11月分别,你需要更多的逻辑

就像是

var minuteFromNow = function(){
    var timeObject = new Date();
    timeObject.setTime(timeObject.getTime() + 1000 * 60);
    return timeObject;
};

new Schema({
    date: { type: Date, default: minuteFromNow }
})

为了说明这将如何处理月末,以下是相同的代码,除了function oneMonthFromNow() { var d = new Date(); var targetMonth = d.getMonth() + 1; d.setMonth(targetMonth); if(d.getMonth() !== targetMonth % 12) { d.setDate(0); // last day of previous month } return d; } new Schema({ date: { type: Date, default: oneMonthFromNow} }) 是传入的任意日期,而不是使用d - 来说明这将如何工作

now
发布评论

评论列表(0)

  1. 暂无评论