如何使用moment.js将日期格式化为iso 8601,但不使用破折号和冒号并将时间设置为0,例如如果我有这样的日期:
2016-10-08T09:00:00Z
如何格式化为:
20161008T000000Z
执行moment(date).toISOString()
会给2016-10-08T09:00:00.000Z
这不是我想要的。
答案 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>