【问题标题】:Issues Parsing Timestamp data to Local Date and Time将时间戳数据解析为本地日期和时间的问题
【发布时间】:2021-10-20 19:15:02
【问题描述】:

我在获取存储在 JSON 文件中的时间戳的本地日期和时间时遇到了一些问题。

getData() 方法应该从 JSON 文件中获取所有数据,包括格式为“YYYY-mm-dd”的日期并将其返回以加载到网页。但日期只是作为数字字符串加载,而不是人类可读格式的日期(即 YYYY-mm-dd)。

JSON 数据

[
  {
    "id": 1,
    "name": "CastAway",
    "description": "Cast movies, music, or pictures to any TV",
    "createdDate": 1629343012430,
    "lastUpdated": 1629343012430
  },
  {
    "id": 2,
    "name": "Turn",
    "description": "Find directions to new destinations",
    "createdDate": 1629343012430,
    "lastUpdated": 1629343012430
  }
]

代码


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

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

/**
 * Logic for reading and writing project data
 */
class ProjectService {
  /**
   * Constructor
   * @param {*} datafile Path to a JSOn file that contains the project data
   */
  constructor(datafile) {
    this.datafile = datafile;
  }

  // adding data to JSON file
  async addEntry(name, description) {
    const data = (await this.getData()) || [];
    const createdDate = Date.now();
    const lastUpdated = Date.now();
    const id = 0;
    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) {
      data[i]['createdDate'] = new Date(data[i]['createdDate']);
      data[i]['lastUpdated'] = new Date(data[i]['lastUpdated']);
    }
    console.log(data);
    return data;
  }

  //reading data from JSON file
  async getData() {
    const data = await readFile(this.datafile, 'utf8');
    if (!data) return [];
    return JSON.parse(data);
  }
}

【问题讨论】:

    标签: javascript reactjs json express


    【解决方案1】:

    在调用 JSON.parse 后,您将不得不重新创建日期,如下所示:

    var data = await getData();
    var parsedCreatedDate = new Date(data[0]['createdDate']);
    var parsedlastUpdated = new Date(data[0]['lastUpdated']);
    

    【讨论】:

    • 查看更改代码。我添加了 getList() 方法,它解析数据并在 console.log(data); 输出中输出正确的日期,但它不会延续到网站。
    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多