Json 如何通过使用reactjs获取来显示对象?

Json 如何通过使用reactjs获取来显示对象?,json,reactjs,Json,Reactjs,我可以从API获取日期,但无法获取时间,我希望在消息旁边显示日期和时间。如果我收到任何消息,那么它应该显示今天下午2:21,否则对于早期消息,它应该显示11-09-2019 06:01 am 我通过api收到的Json数据: [ { "id": "14526fgy", "message" : "Hello", "messageime" : "2019-11-12T03:07:58.359" }, { "id": "14546fgy", "message" : "Hi", "messagetim

我可以从API获取日期,但无法获取时间,我希望在消息旁边显示日期和时间。如果我收到任何消息,那么它应该显示今天下午2:21,否则对于早期消息,它应该显示11-09-2019 06:01 am

我通过api收到的Json数据:

[
{
"id": "14526fgy",
"message" : "Hello",
"messageime" : "2019-11-12T03:07:58.359"
},

{
"id": "14546fgy",
"message" : "Hi",
"messagetime" : "2019-12-12T10:07:58.359Z"
}
]

为了显示日期和时间,我附上了一个示例。有人能帮我吗?

首先,您需要按T从API中分割日期

let dateSplit  = result[0].messagedateTime.split("T");
现在有了一个包含2个元素的数组['2019-11-12','03:07:58.359']

因此,首先需要创建一个变量,例如todayDate,该变量包含上述ie YYYY-MM-DD格式的todays日期。您可以从internet获取如何将今天的日期提取为该格式,或创建自己的自定义函数以该格式转换日期

然后你需要比较一下

let firstPart = (todayDate === dateSplit[0])?'today':dateSplit[0];
所以第二部分包含时间,您可以随时参考时刻库,根据需要更改日期和时间格式。所以这不会是个问题。因此,您的主要逻辑是在我提到的上述步骤中实现的

let finalString = `${firstPart} , ${secondPart}`
最后一个字符串将显示在聊天记录下。这里的第二个部分变量是时间,在通过包含时间的dateSplit之后,根据您的格式通过moment.js提取出来,希望您清楚,否则请询问我

更新答案:

displayDate(messagedateTime) {
  let time = messagedateTime;
let arr = time.split("T");
let date = new Date().getDate()
let month  = new Date().getMonth() +1 
let year = new Date().getFullYear()
let todayDate = `${year}-${month}-${date}`

 let firstPart = (todayDate === arr[0])?'today':arr[0];

 let secondPart = (arr[1].split("."))[0]

 let finalString = `${firstPart} ${secondPart}`

return finalString

 console.log(finalString,'wowow')
}

您还可以尝试使用js fiddle链接来播放

,以演示如何使用它。如果矩库或任何其他库没有您想要的自定义格式,请将其设置为字符串,使其成为您自己的格式

let datetime = "2019-11-13T03:07:58.359";

var d = datetime.split("T");

console.log(d);
let timeday = moment(d[0]).calendar();
timeday=timeday.toString();
timeday=timeday.replace(" at","");
console.log(timeday.toString());

检查moment.js库,它用于不同格式的日期和时间。查看链接了解更多信息。[Link]@saqibnaseb-Hi,我如何使用Json数据?你能告诉我如何使用它吗?因为我是ReactJS的新手。我已经提到,你将获得一个格式,然后你必须根据你的要求进行更改。就像今天凌晨12:00的输出一样,首先将timeday变量转换为字符串,从中删除at。我已经更新了答案,这将为您的第一部分提供所需的答案抱歉,我仍然感到困惑。。您是否正在接受Gaurav Roy给出的上述答案的第一部分?您问题的这一部分*如果我收到任何消息,那么它应该显示在今天下午2:21*我为混淆道歉抱歉,最后,我在json文件中遗漏了Z。。消息日期时间:2019-11-12T03:07:58.359Z。你能告诉我为什么我们要把结果[0]放在这里吗..我假设你存储在结果变量中的api的结果,因为它是一个对象数组,你要第一个对象,你可以有你想要的,但是通过t拆分你能帮我把最后的字符串放在哪里吗。。它在函数中吗?不,你想在哪里显示最后的时间,我在上面的查询中已经更新了,你能帮助我查看上面的代码,显示日期和时间吗?