moment.js如何将日期格式化为没有破折号的ISO 8601格式?

4
使用moment.js如何将日期格式化为ISO 8601格式,但是去掉中间的破折号和冒号,并设置时间为0。例如,如果我有一个日期,如下所示:
2016-10-08T09:00:00Z

如何格式化为:
20161008T000000Z

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


moment().format('YYYYMMDD') 会给出例如 '20161008' 的结果。更多信息请参见 http://momentjs.com/docs/#/displaying/format/。 - smcd
1个回答

4
您可以将输入数据解析为一个moment对象,并使用 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>


1
你需要使用 UTC 模式。请使用 moment.utc - Matt Johnson-Pint

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接