在React中使用moment.js格式化日期的问题

时间:2019-09-20 09:39:56

标签: javascript reactjs

我正在使用Open Weather Map API在React中创建天气应用,并且您知道,API为我们提供了5天/ 3小时天气预报的数据。此外,由于API默认情况下使用GMT Unix时间戳格式,因此我决定将其格式化为“ MM-DD-YYYY”,以便轻松处理日期。但是问题是,当我尝试将moment.js中的“ MM-DD-YYYY”进一步转换为LT格式时,我丢失了日期中的时间日期,并且默认情况下所有时间均为12:00 AM。是真的,如果我们尝试将原始GMT Unix时间戳格式转换为“ MM-DD-YYYY”,然后再将“ MM-DD-YYYY”转换为“ LT”,我们将浪费与GMT Unix时间戳相同的时间吗? >

enter image description here

newlist = list.split(',')

enter image description here

3 个答案:

答案 0 :(得分:0)

我想你混在一起了。这里。您不应使用时间字符串进行实际计算,而应更改日期的格式,而应保留实际的矩对象以进行进一步的计算。这样,您始终拥有正确的时间和日期。

答案 1 :(得分:0)

我认为您在已格式化的日期进行格式化。您应该保留一下矩对象而不是格式化的日期。

您应该仅在渲染时格式化日期。通过时,我们传递moment对象。

示例

let parsed = moment(new Date())
let format1 = parsed.format('MM-DD-YYYY')
let format2 = parsed.format('LT')
console.log(format1) // 09-20-2019
console.log(format2) // 3:43 PM

希望有帮助!

答案 2 :(得分:0)

我认为问题是由于这个原因

date: moment(new Date(item.dt_txt)).format("MM-DD-YYYY")

如上转换日期时,它会剥夺时间并获得简单的日期。

应该是这个

date: moment(new Date(item.dt_txt)).format("MM-DD-YYYY, h:mm:ss a")

Demo