moment.js格式化日期为iso 8601没有破折号?

时间:2016-10-08 20:03:14

标签: momentjs isodate

如何使用moment.js将日期格式化为iso 8601,但不使用破折号和冒号并将时间设置为0,例如如果我有这样的日期:

2016-10-08T09:00:00Z

如何格式化为:

20161008T000000Z

执行moment(date).toISOString()会给2016-10-08T09:00:00.000Z这不是我想要的。

1 个答案:

答案 0 :(得分:3)

您只需将输入解析为时刻对象,然后使用startOf将时间设置为00:00:00。然后,您可以使用format方法获取自定义格式的字符串。

这里有一个使用字符串输入的工作示例,如果您的输入是javascript Date对象,也可以使用相同的代码。

// Input date as string
var s = '2016-10-08T09:00:00Z';
// Reset time part
// var m = moment(s).startOf('day');  // no UTC
var m = moment.utc(s).startOf('day'); // UTC mode
// Format using custom format
console.log(m.format('YYYYMMDD[T]HHmmss[Z]'));
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>