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

使用date-fns format函数处理日期未得到预期结果求助

问题原因

你现在的代码存在两个关键问题:

  • map 函数是返回新数组的纯函数,不会修改原数组tests,你没接收它的返回值,自然看不到处理后的结果
  • 你调用format转换日期后,没有把转换结果赋值给原对象的Hour属性,也没生成新对象保存结果
解决方法

方式1:直接修改原数组(不推荐)

如果一定要修改原始数组,改用forEach遍历并赋值:

tests.forEach((test) => {
  test.Hour = format(test.Hour, `yyyy-MM-dd'T'HH`);
  console.log(test.Hour);
});
console.log(tests); // 此时数组内的Hour已经是转换后的格式

方式2:生成新数组(推荐)

保持原数组不变,用map创建处理后的新数组,这是更符合JS最佳实践的方式:

const formattedTests = tests.map((test) => {
  const formattedHour = format(test.Hour, `yyyy-MM-dd'T'HH`);
  console.log(formattedHour);
  // 解构原对象,替换Hour属性生成新对象
  return { ...test, Hour: formattedHour };
});
console.log(formattedTests); // 打印处理后的新数组

额外说明

date-fns的format函数仅返回格式化后的字符串,不会主动修改传入的日期数据。保留原始API数据有助于后续调试或其他业务场景使用,因此更推荐使用生成新数组的方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:35:42