我使用原生反应来开发移动应用程序。 我检索一些API的一些信息,我循环使用这种格式的日期:
"2018-06-02T10: 00: 00 2018-06-02T11: 00: 00; 2018-06-03T10: 00: 00 2018-06-03T11: 00: 00"
我知道它是ISO 8601格式,我想让它看起来更好,所以我尝试使用Moment.js,但我不能。
这是我的代码的一部分(当然我没有忘记导入Moment.js):
这是我的代码(当然我没有忘记导入Moment.js):
<View style={styles.contentItem}>
<Text style={styles.text}>{Moment(item.fields.timetable).format('YYYY-MM-DD HH:mm')}</Text>
<Foundation name="clock" style={styles.icons} />
</View>
我发现自己的错误“无效日期”,我做错了吗?你能帮助我或给我一些线索吗?
答案 0 :(得分:0)
由于您的日期为字符串,因此您需要将其转换为日期,然后您可以根据需要更新格式。以下是答案:
const stillUtc = moment.utc(YOUR_DATE).toDate();
const local = moment(stillUtc).local().format('YYYY-MM-DD HH:mm');
答案 1 :(得分:0)
您必须将单个日期传递给moment
而不是日期数组。您可以将输入日期格式传递给moment
,如下所示:
let date = "2018-06-02T10: 00: 00"
let correctDate = moment(date, 'YYYY-MM-DDTHH: mm: ss').format('YYYY-MM-DD HH:mm'),
答案 2 :(得分:0)
嗯,你的格式并不完全是ISO 8601
。你有一些额外的空间。
可以用2018-06-02T10: 00: 00
代替2018-06-02T10:00:00
。 ? (如果日期与时区一致,您可以在Z
2018-06-02T10:00:00Z
请务必只为Date
而不是Moment
提供一个array
。
希望这有帮助!