【问题标题】:moment.js format date as iso 8601 without dashes?moment.js 格式日期为 iso 8601 没有破折号?
【发布时间】:2016-10-08 20:03:13
【问题描述】:

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

2016-10-08T09:00:00Z

我如何格式化为:

20161008T000000Z

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

【问题讨论】:

标签: momentjs isodate


【解决方案1】:

您可以简单地将输入解析为矩对象,然后使用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>

【讨论】:

  • 您希望为此设置 UTC 模式。使用moment.utc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-04
  • 2013-05-22
相关资源
最近更新 更多