是的,我知道成千上万的类似问题,但我的大脑正试图打击,我向你求助。 我读过很多文章而且还很困惑。
这就是我所拥有的。
var next_market_event_in_NewYork = "2014-12-02T16:00:00"; //that's what server gives me
var secondsFromMarketToMoscow = 28800; //that's also what server gives me
var secondsFromMoscowToLondon = 10800; //that's also what server gives me
var secondsFromLocalToLondon = 7200; //that's what I get from local timeoffset new Date().getTimezoneOffset()*(-60)
我需要的是从现在开始到纽约的下一个活动还有多少秒。花了几十个小时。只是不知道如何得到答案。请帮助。
答案 0 :(得分:1)
困难的部分是计算纽约时间和UTC之间的差异。如果您可以在服务器端执行此操作,则应该没有问题。如果你不能那么你就可以对偏移进行硬编码,但是当美国处于夏令时时会发生变化。
以下是NY和UTC之间硬编码5小时偏移的代码示例。
var next_market_event_in_NewYork = "2014-12-02T16:00:00";
var msNYtoUTC = 5 * 60 * 60 * 1000; //better to calculate this server-side
var nextEventDate = new Date(Date.parse(next_market_event_in_NewYork) + msNYtoUTC);
setInterval(function() {
var localTime = new Date();
var secondsRemaining = (nextEventDate - localTime) / 1000;
document.getElementById("result").innerHTML = secondsRemaining.toFixed(0);
}, 1000);
<h1>
<span id="result"></span>
seconds until market event
</h1>
答案 1 :(得分:0)
如果您需要纯JavaScript解决方案,请考虑使用已经了解时区的库,例如moment.js添加了moment-timezone。
var next_market_event_in_NewYork = "2014-12-02T16:00:00";
var m = moment.tz(next_market_event_in_NewYork, "America/New_York");
var now = moment();
var s = m.diff(now,'seconds');