【问题标题】:How Do I Convert a Unix Timestamp to ISO 8601 in JavaScript?如何在 JavaScript 中将 Unix 时间戳转换为 ISO 8601?
【发布时间】:2012-10-12 22:53:19
【问题描述】:

我有一个像 1331209044000 这样的时间戳,我想将它转换为 ISO 8601 时间戳。如何使用 JavaScript 进行转换?

我使用 jQuery "timeago" 插件 - http://timeago.yarp.com/

【问题讨论】:

标签: javascript


【解决方案1】:

假设您的时间戳以毫秒为单位(或者您可以轻松转换为毫秒),那么您可以使用 Date constructordate.toISOString() method

var s = new Date(1331209044000).toISOString();
s; // => "2012-03-08T12:17:24.000Z"

如果您针对不支持 EMCAScript 第 5 版的旧版浏览器,则可以使用此问题中列出的策略:How do I output an ISO 8601 formatted string in JavaScript?

【讨论】:

  • 这是 ECMAScript 5 - 有关兼容性和后备代码,请参见此处:developer.mozilla.org/en-US/docs/JavaScript/Reference/…
  • 别忘了,unix 时间戳以秒为单位,而 Javascript 以毫秒为单位。所以实际上是new Date(timestamp * 1000).toISOString();
  • 这条评论是给未来的我的:它必须在 MILISECONDS !
【解决方案2】:

我使用的解决方案,感谢提供的链接

// convert to ISO 8601 timestamp
function ISODateString(d){
    function pad(n){return n<10 ? '0'+n : n}
    return d.getUTCFullYear()+'-'
        + pad(d.getUTCMonth()+1)+'-'
        + pad(d.getUTCDate())+'T'
        + pad(d.getUTCHours())+':'
        + pad(d.getUTCMinutes())+':'
        + pad(d.getUTCSeconds())+'Z'
}

var d = new Date(parseInt(date));
console.log(ISODateString(d));

【讨论】:

  • 当然,这个函数假定日期实际上是祖鲁(GMT+0)时区。
猜你喜欢
  • 2012-02-13
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 2013-03-11
  • 2011-05-02
  • 1970-01-01
  • 2019-02-02
相关资源
最近更新 更多