You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Mongoose schema中Date.now输出格式为MMMM Do YYYY

解决方案

你可以按需选择以下两种常用方案,推荐优先选第一种,仅在需要展示的时候做格式转换,保留数据库的Date类型存储方便后续日期相关操作:

方案1:查询数据后手动转换格式

可以用轻量的日期处理库dayjs(也可以用moment.js,用法类似)完成转换:

  1. 安装依赖:
npm install dayjs
  1. 转换代码示例:
const dayjs = require('dayjs')
// 如果需要展示中文的月份、序数词,加载中文本地化包
require('dayjs/locale/zh-cn')
dayjs.locale('zh-cn')

// 假设doc为你查询得到的Mongoose文档
const formattedDate = dayjs(doc.date).format('MMMM Do YYYY')

方案2:在Mongoose Schema中配置Getter自动转换

如果需要每次查询该字段都自动返回格式化后的内容,可以在Schema中配置Getter:

const dayjs = require('dayjs')
require('dayjs/locale/zh-cn')
dayjs.locale('zh-cn')

const yourSchema = new mongoose.Schema({
  date: {
    type: Date,
    default: Date.now,
    // 配置Getter,字段被读取时自动执行转换
    get: (dateVal) => dateVal ? dayjs(dateVal).format('MMMM Do YYYY') : null
  }
}, {
  // 必须开启这两个配置,Getter才会在查询返回文档时生效
  toJSON: { getters: true },
  toObject: { getters: true }
})

注意:不建议修改Schema将日期直接存为格式化后的字符串,Date类型的原生存储支持直接做日期筛选、排序、差值计算等操作,灵活性远高于字符串存储

内容的提问来源于stack exchange,提问作者user13824605

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:06:03