我有一个 JavaScript Date
对象。我正在将其提交给网络服务。 Web 服务期望的格式如下:2014-01-01T00:00:00Z
。不幸的是,我什至不知道这种格式叫什么。它看起来像 [Year]-[Month]-[Day]-T[Hours]:[Minutes]:[Seconds]Z
。
我怀疑Z
有什么意义。然而,我不知道是什么。这是标准的Date
格式吗?如果是这样,有没有办法可以轻松地将我的 Date
对象转换为这种格式?或者,我需要手动构建它吗?
谢谢!
最佳答案
I do not even know what that format is called.
它是 ISO-8601 定义的形式之一.
在任何现代浏览器上,您都可以使用 toISOString
方法获取该表单,但它将包含毫秒,而您的示例则不包含毫秒。您发送到的端点可能不关心;如果确实如此,简单的replace
就可以消除它们:
var str = dt.toISOString().replace(/\.\d{3}/, '');
如果您需要支持 IE8,则需要一个 polyfill。
另一种选择是使用类似 MomentJS 的内容。 ,它提供了各种格式选项。
toISOString
和 replace
示例:
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>
关于javascript - 将 JavaScript 日期对象格式化为特定格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28113161/