我发现some code here on Stack Overflow完全符合我的要求,即获取GMT时间字符串并将其转换为用户浏览器上的本地时间。真棒。
然而,我坚持应该是一件非常小的事情。当我显示时间时,我希望用户的当前本地时区与时间一起显示。目标是输出一个类似于:
的字符串2014/02/19 15:12 (PST)
我看过the parameters for the Javascript Date() function,但是,除非我失明,否则我看不到输出用户时区的内容。有getTimezoneOffset()
,它返回一个数字,但不是时区的代码。
我剩下的所有时间都显示正常,除了最后一部分,我希望它说PST
(或GMT
或JST
或用户所在的任何地方)。有没有办法做到这一点?
答案 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中返回日期,您应该在各种浏览器上进行测试等。这只是一个线索。