与moment.js

时间:2018-06-04 12:03:56

标签: react-native momentjs

我使用原生反应来开发移动应用程序。 我检索一些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>

我发现自己的错误“无效日期”,我做错了吗?你能帮助我或给我一些线索吗?

3 个答案:

答案 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

希望这有帮助!