javascript - 将时间戳数据解析为本地日期和时间的问题
问题描述
我在获取存储在 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);
}
}
解决方案
在调用 JSON.parse 之后,您将不得不重新创建日期,如下所示:
var data = await getData();
var parsedCreatedDate = new Date(data[0]['createdDate']);
var parsedlastUpdated = new Date(data[0]['lastUpdated']);
推荐阅读
- webpack-4 - 如何在 scss 文件中调用背景 url?
- reactjs - React Native Typescript 模板不起作用
- angular - 如何从拦截器向调用者函数抛出错误
- cmake - cmake没有将目标移动到安装目录
- r - 省略轴标签 - 轴是一个因素
- javascript - 如何将旧的(非事件驱动的)软件移植到 javascript
- ios - swift中使用mvvm模式的网络调用函数
- c++ - 无法通过引用函数“calcValues”中的变量“firstNum”和“secondNum”来更改值
- java - 如何解决时区和 SSL 的问题
- android - 我可以使用 NDK 访问设备文件(/dev/...)吗?