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

如何将JSON文件中的时间戳转换为YYYY-mm-dd格式的本地日期时间

问题原因

当前代码仅将JSON中读取到的时间戳转换为了原生Date对象,没有完成YYYY-mm-dd格式的字符串转换,直接返回给前端渲染时就无法展示人类可读的指定格式日期。

修复方案

在现有代码基础上新增日期格式化方法,处理Date对象输出指定格式的字符串即可,修改后的完整代码如下:

const fs = require('fs');
const util = require('util');

const readFile = util.promisify(fs.readFile);
const writeFile = util.promisify(fs.writeFile);

/**
 * 项目数据读写逻辑
 */
class ProjectService {
  /**
   * 构造函数
   * @param {*} datafile 存储项目数据的JSON文件路径
   */
  constructor(datafile) {
    this.datafile = datafile;
  }

  /**
   * 日期格式化方法,输出YYYY-mm-dd格式
   * @param {Date} date 待格式化的日期对象
   * @returns {string} 格式化后的日期字符串
   */
  #formatDate(date) {
    const year = date.getFullYear();
    // 月份从0开始计数,需要补1,不足两位自动补0
    const month = String(date.getMonth() + 1).padStart(2, '0');
    // 日期不足两位自动补0
    const day = String(date.getDate()).padStart(2, '0');
    return `${year}-${month}-${day}`;
  }

  /**
   * 向JSON文件新增数据
   */
  async addEntry(name, description) {
    const data = (await this.getData()) || [];
    const createdDate = Date.now();
    const lastUpdated = Date.now();
    // 原逻辑id固定为0会导致所有条目id重复,已修改为按现有最大id累加生成
    const maxId = data.length ? Math.max(...data.map(item => item.id)) : 0;
    const id = maxId + 1;
    data.unshift({ id, name, description, createdDate, lastUpdated });
    return writeFile(this.datafile, JSON.stringify(data));
  }

  async getList() {
    const data = await this.getData();
    for (let i in data) {
      const createdDate = new Date(data[i]['createdDate']);
      const lastUpdated = new Date(data[i]['lastUpdated']);
      // 格式化后再赋值返回
      data[i]['createdDate'] = this.#formatDate(createdDate);
      data[i]['lastUpdated'] = this.#formatDate(lastUpdated);
    }
    return data;
  }

  /**
   * 从JSON文件读取数据
   */
  async getData() {
    const data = await readFile(this.datafile, 'utf8');
    if (!data) return [];
    return JSON.parse(data);
  }
}

补充说明

如果不需要修改原有的id生成逻辑,直接删掉addEntry方法中id相关的修改部分即可,不影响日期格式化的功能效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:45:04