我需要在中心Timzone显示当前时间,无论客户的当地时区如何,为此,我需要知道中央时区是UTC-6还是UTC-5
在Javascript中处理夏令时的最佳方法是什么?
答案 0 :(得分:1)
首先,您需要一个实现IANA时区数据库的JavaScript库。我列出了其中几个here。
美国中部时间的IANA区域名称为America/Chicago
。
如果您想知道的是该区域中的当前时间,并且适当地应用了DST,那么所有这些库都将某种形式作为主要用例。
最简单的例子可能就是moment-timezone,您只需执行此操作:
var nowInCentralTime = moment().tz("America/Chicago");
var stringToOuput = nowInCentralTime.format("LLL");
(当然,您可以应用您想要的任何格式。有关详细信息,请参阅moment.js文档。
如果你想知道这是否是DST,你可以这样做:
var centralIsInDST = nowInCentralTime.isDST();
答案 1 :(得分:0)
在当地区域明确不是 DST 时找到偏移量
var zone,
z1 = new Date(2013, 0, 1).getTimezoneOffset(),
z2 = new Date(2013, 5, 1).getTimezoneOffset();
if (z2 < z1) // northern hemisphere
zone = z1;
else // southern hemisphere
zone = z2;
答案 2 :(得分:0)
我最终在服务器上执行此操作并在检查此帖子后将其传递给客户端: Daylight saving time and time zone best practices
Never trust client datetime. It may very well be incorrect.