从当前日期获取 GMT 字符串
Posted
技术标签:
【中文标题】从当前日期获取 GMT 字符串【英文标题】:Get GMT String from current Date 【发布时间】: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。编辑问题以反映这一点。
【参考方案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
【讨论】:
以上是关于从当前日期获取 GMT 字符串的主要内容,如果未能解决你的问题,请参考以下文章