将JavaScript Date对象格式化为特定格式

时间:2015-01-23 15:26:53

标签: javascript date

我有一个JavaScript Date对象。我将此提交给Web服务。 Web服务期望格式如下:2014-01-01T00:00:00Z。不幸的是,我甚至不知道这种格式是什么。它看起来像[Year]-[Month]-[Day]-T[Hours]:[Minutes]:[Seconds]Z

我怀疑Z意味着什么。但是,我不知道是什么。这是标准的Date格式吗?如果是这样,有没有办法可以轻松地将我的Date对象转换为这种格式?或者,我是否需要手动构建它?

谢谢!

1 个答案:

答案 0 :(得分:1)

  

我甚至不知道这种格式是什么。

它是ISO-8601定义的表单之一。

在任何现代浏览器上,您都可以使用toISOString方法获取该表单,除非它包含毫秒,您的示例并不是这样。您发送给的终端可能不在乎;如果是这样,一个简单的replace可以摆脱它们:

var str = dt.toISOString().replace(/\.\d{3}/, '');

如果您需要支持IE8,则需要填充。

另一种选择是使用类似MomentJS的内容,它提供各种格式选项。

toISOStringreplace的示例:



var dt = new Date();
var str = dt.toISOString().replace(/\.\d{3}/, '');
snippet.log(str);

<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
&#13;
&#13;
&#13;

相关问题