如何将用户的时区附加到Javascript中的字符串?

时间:2014-02-19 06:17:32

标签: javascript datetime

我发现some code here on Stack Overflow完全符合我的要求,即获取GMT时间字符串并将其转换为用户浏览器上的本地时间。真棒。

然而,我坚持应该是一件非常小的事情。当我显示时间时,我希望用户的当前本地时区与时间一起显示。目标是输出一个类似于:

的字符串
2014/02/19 15:12 (PST)

我看过the parameters for the Javascript Date() function,但是,除非我失明,否则我看不到输出用户时区的内容。有getTimezoneOffset(),它返回一个数字,但不是时区的代码。

我剩下的所有时间都显示正常,除了最后一部分,我希望它说PST(或GMTJST或用户所在的任何地方)。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

可以创建日期然后对其执行某些操作。如果你看一下创建新创建的Date对象的格式,例如像:

Wed Feb 19 2014 07:29:26 GMT+0100 (Central European Standard Time)

现在您可以简单地使用全名:

var myDate = new Date();
var userTmzn = myDate.substring(myDate.lastIndexOf('(')+1).replace(')','').trim()

这应该在userTmzn

中给你这个
Central European Standard Time

现在为了使它整洁并有缩写,你可以尝试更多的操作:

// Take the part with timezone name and strip it from trailing ')'
var fullName = myDate.split("(")[1].replace(")","");

 // Split into words
var words = fullName.split(" ");

// Take just first letters
var timezoneCode = "";
for(i = 0; i < words.length; i++)
{
    timezoneCode += words[i].charAt(0);
}

那应该在timezoneCode变量中给你(以下相同的例子):

CEST

这是高度定制的,而不是现成的解决方案。您应该在代码中验证默认日期的toString()在TIME FORMAT中返回日期,您应该在各种浏览器上进行测试等。这只是一个线索。