如何修改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
相关产品推荐
相关产品推荐

