javascript - 如何在 JavaScript 中输出 ISO 8601 格式的字符串?

标签 javascript datetime iso8601

我有一个 Date 对象。 如何呈现以下代码段的 title 部分?

<abbr title="2010-04-02T14:12:07">A couple days ago</abbr>

我有来自另一个库的“相对时间”部分。

我尝试了以下方法:

function isoDate(msSinceEpoch) {

   var d = new Date(msSinceEpoch);
   return d.getUTCFullYear() + '-' + (d.getUTCMonth() + 1) + '-' + d.getUTCDate() + 'T' +
          d.getUTCHours() + ':' + d.getUTCMinutes() + ':' + d.getUTCSeconds();

}

但这给了我:

"2010-4-2T3:19"

最佳答案

已经有一个函数叫做 toISOString() :

var date = new Date();
date.toISOString(); //"2011-12-19T15:28:46.493Z"

如果,不知何故,你在 a browser不支持它,我已经为您服务了:

if (!Date.prototype.toISOString) {
  (function() {

    function pad(number) {
      var r = String(number);
      if (r.length === 1) {
        r = '0' + r;
      }
      return r;
    }

    Date.prototype.toISOString = function() {
      return this.getUTCFullYear() +
        '-' + pad(this.getUTCMonth() + 1) +
        '-' + pad(this.getUTCDate()) +
        'T' + pad(this.getUTCHours()) +
        ':' + pad(this.getUTCMinutes()) +
        ':' + pad(this.getUTCSeconds()) +
        '.' + String((this.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) +
        'Z';
    };

  }());
}

console.log(new Date().toISOString())

关于javascript - 如何在 JavaScript 中输出 ISO 8601 格式的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2573521/

相关文章:

javascript - 使用jquery将html字符串加载到div中

带有时区的 W3C XML 日期的 Java SimpleDateFormat 模式

javascript - "too much recursion"在这个用 JavaScript 编写的递归函数中 (obj2str)

php - 获取哈希 URL 并将其发送到新 URL

javascript - 为什么不推荐使用 String.prototype.substr()?

c - 想要使用 struct tm 执行日期/时间值操作

ruby-on-rails - 如何为我的 Rails 应用程序提供通用时间支持?

python - 如何在pandas的空列中添加值?

ruby - 为什么一年中的第几周根据年份以 1 或 0 开头?

java - Java/Spring 中带有逗号分隔符的 iso-8601 解析器