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

如何为JavaScript数组对象添加moment.js日期格式化语法并避免转为字符串

解决moment.js格式化语法被转为字符串的问题

我懂你遇到的困扰了——你本来想把数组里的日期用moment.js转成DD/MM/YYYY格式,但写出来的moment调用代码却被当成了字符串,根本没执行格式化逻辑对吧?

问题根源

你大概率是直接把moment('xxx').format('DD/MM/YYYY')当成字符串写进了对象里,或者在某些不支持执行JS函数的场景(比如静态JSON)里尝试这么做,导致代码没有被解析执行,反而变成了字符串字面量。

正确的实现方式

你需要用JavaScript的数组方法实际执行moment的格式化逻辑,而不是手动硬写字符串。这里用map方法遍历原数组,生成新的格式化后的数据数组:

// 先确保已经引入moment.js:浏览器通过script标签,Node环境先npm install moment再require
const moment = require('moment'); 

const data = [ 
  { date: '2018-04-11T00:00:00.000+07:00', price: 5000 }, 
  { date: '2018-04-03T00:00:00.000+07:00', price: 2000 } 
];

// 遍历数组,对每个对象的date字段执行moment格式化
const data2 = data.map(item => ({
  ...item, // 保留原对象的其他属性(比如price)
  date: moment(item.date).format('DD/MM/YYYY') // 实际执行格式化,返回处理后的字符串
}));

console.log(data2);
// 输出结果就是你期望的:
// [ { date: '11/04/2018', price: 5000 }, { date: '03/04/2018', price: 2000 } ]

注意事项

  • 一定要确保moment.js已经正确引入到你的项目中:浏览器环境可以通过CDN或者本地script标签引入,Node.js环境需要先安装依赖再require。
  • 如果是在静态JSON文件里,是没办法直接写函数调用的——JSON只能存储静态数据。这种情况你需要先在JS代码里处理好data数组,再把处理后的data2作为最终数据使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:11:24