【发布时间】:2016-10-18 04:26:25
【问题描述】:
我正在为一个事件创建倒计时,服务器会告诉我距离该事件还剩多少秒。它在同一时区 America/New_York 工作正常,但我不确定如何在不同的时区实现这一目标。我想我必须根据用户的时区添加/减去几秒钟。我考虑到服务器返回的秒数将始终在 EST 中。有人可以建议吗? 到目前为止,我有这个,但我收到一个错误:
let serverZoneTime = new moment().tz.zone("America/New_York").offset(now);
let currentZoneTime = moment.tz.guess().offset(now);
console.log((EstTzOffset - currentTz));
【问题讨论】:
-
如果是倒计时,那么我认为您不需要在这里考虑时区,因为您已经说过“
server gives me the number of seconds left till this event。如果您的服务器说“航天飞机发射还剩 10 分钟”,它将是对伦敦或东京的某个人来说,对你或加那利群岛上可怜的查理来说都是如此。只要让服务器返回绝对滴答声,就会很好 -
@Novice 对不起,你是绝对正确的。实际上柜台很好,我搞砸了我的问题。我需要根据事件在下午 6 点开始的剩余秒数显示一条消息。那么如何在他们的时区中添加/减去秒数以始终显示下午 6 点?
-
是的,您想获得用户时钟相对于您自己的时钟的偏移量,但您不知道如果您能获得他的时区,他的时区看起来是一个简单的问题,但事实并非如此!问题是由于 DST,时区偏移量在一年中不是恒定的。我建议不要进行手动计算,让 moment.js 这样做看看this 帖子它非常详细地描述了事情并且还提供了一个简单而有效的解决方案
-
@novice 谢谢你的帮助,我会关注这个帖子,看来是我需要的。
标签: javascript momentjs