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

如何修改JavaScript数组对象的created属性(Express+Mongo场景)

用dateFormat处理Express中Mongo查询结果的日期格式

没问题,这事儿很简单,我来给你一步步说清楚怎么用dateFormat包调整你的stories数组里的created字段格式,适配前端展示需求:

1. 先安装dateFormat包

首先确保你的项目里已经安装了这个包,在终端执行:

npm install dateformat
# 或者用yarn的话
yarn add dateformat

2. 在你的Express代码中引入包

在需要处理日期的路由或者逻辑文件里,引入dateFormat:

const dateFormat = require('dateformat');

3. 格式化stories数组中的日期

因为Mongo查询返回的created字段是Date对象(Mongo默认存储的ISODate类型),你可以用数组的map方法遍历每个故事对象,返回一个包含格式化后日期的新对象(推荐这种方式,不会修改原数据):

// 假设stories是你从Mongo查询得到的数组
const formattedStories = stories.map(story => {
  // 复制原对象的所有属性,然后覆盖created字段为格式化后的字符串
  return {
    ...story,
    // 这里的格式字符串可以根据你的展示需求自定义
    created: dateFormat(story.created, "yyyy-mm-dd hh:MM:ss")
  };
});

格式字符串参考(常用示例)

  • "yyyy-mm-dd" → 输出 2018-03-25
  • "mmmm dS, yyyy" → 输出 March 25th, 2018
  • "hh:MM TT" → 输出 01:01 PM
  • 你可以根据dateFormat的规则组合出自己需要的格式

特殊情况处理

如果你的created字段是字符串类型(比如手动存的ISO字符串),记得先转成Date对象再格式化:

created: dateFormat(new Date(story.created), "yyyy-mm-dd hh:MM:ss")

4. (可选)直接修改原数组

如果你不需要保留原数据,也可以用forEach直接修改数组里的每个对象:

stories.forEach(story => {
  story.created = dateFormat(story.created, "yyyy-mm-dd hh:MM:ss");
});

这样处理后,formattedStories(或者修改后的stories数组)里的每个对象的created字段就是你想要的展示格式了,直接传给前端用就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:32:06