【问题标题】:Get GMT String from current Date从当前日期获取 GMT 字符串
【发布时间】:2012-04-17 11:59:04
【问题描述】:

我能够得到我需要的输出格式,但不是正确的时间。我需要它在格林威治标准时间(+4 小时)

var dt = new Date();
var dt2 = dt.toString('yyyyMMddhhmmss');

有什么想法吗?输出如下:

20120403031408

我可以通过以下方式获得标准字符串格式的 GMT:

dt.toUTCString();

但我无法将其转换回 yyyyMMddhhmmss 字符串

编辑:我正在使用 date.js 库

【问题讨论】:

  • 您使用什么库或脚本来获取toString(format)? standard method 不承认任何论点。
  • 抱歉,我正在使用 date.js。编辑问题以反映这一点。

标签: javascript date gmt datejs


【解决方案1】:

date.js 的toString(format) 在格式化日期时没有指定“UTC”的选项。 method itself(在文件底部)从不引用 Date 的任何 getUTC... methods,这是支持此类选项所必需的。

您可以考虑使用其他库,例如 Steven Levithan 的 dateFormat。有了它,您可以在format 前面加上UTC:,或者在format 之后传递true:

var utcFormatted = dateFormat(new Date(), 'UTC:yyyyMMddhhmmss');
var utcFormatted = dateFormat(new Date(), 'yyyyMMddhhmmss', true);

// also
var utcFormatted = new Date().format('yyyyMMddhhmmss', true);

您也可以编写自己的函数,如Dominic demonstrated。

【讨论】:

  • 与 Steven Levithan 的图书馆合作得很好。谢谢
【解决方案2】:

关键是使用getUTC函数:

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

/* use a function for the exact format desired... */  
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();  
console.log(ISODateString(d)); // prints something like 2009-09-28T19:03:12Z  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2013-07-17
    • 2021-03-12
    • 2014-01-30
    • 2014-05-09
    • 2020-04-07
    相关资源
    最近更新 更多