0

タイマーをリセットしたり、異なるタイムゾーンの人々が異なる数字を見たりすることなく、flipclock を使用して特定の日付へのカウントダウンを作成しようとしています。たとえば、2 月 20 日午前 12 時 (MST) までカウントダウンしたいとします。

私の問題は、時計が 0 に達した後にブラウザが更新されるとリセットされ、時間が負の数を示すことです。この時計を現在の構成で表示している場合、タイムゾーンで 2 月 20 日午前 0 時までカウントダウンしています。

新年のコンパイルされた時計へのカウントダウンから始めて、日付を設定しましたが、タイムゾーンとリセットの問題に対処する方法が他にわかりません.

var clock;

$(document).ready(function() {

    // Grab the current date
    var currentDate = new Date();

    // Set some date in the future. In this case, it's always Jan 1
    var futureDate = new Date(currentDate.getFullYear() + 0, 1, 20, 0, 0);

    // Calculate the difference in seconds between the future and current date
    var diff = futureDate.getTime() / 1000 - currentDate.getTime() / 1000;

    // Instantiate a coutdown FlipClock
    clock = $('.clock').FlipClock(diff, {
        clockFace: 'DailyCounter',
        countdown: true,
        showSeconds: false,
        callbacks: {
            stop: function() {
                $('.message').html('The clock has stopped!');
            }
        }
    });
});
4

2 に答える 2

0

カウントダウンしたい時間は特定のタイムゾーンの特定の時間であるため、最も簡単な方法は、その時間を UTC に事前に変換し、代わりにそれまでカウントダウンすることです。

2016 年 2 月 20 日の米国山岳部時間は UTC-7 であるため、次のようになります。

2016-02-20 00:00:00 MST == 2016-02-20 07:00:00 UTC

そう、

var currentDate = new Date();
var futureDate = Date.UTC(currentDate.getUTCFullYear(), 1, 20, 7, 0, 0);
var diff = (futureDate - currentDate.getTime()) / 1000;

FlipClock の詳細とリセットの問題については、他の誰かに WRT で回答してもらいますが、別の質問で質問することを検討してください。(今後は、一度に 1 つの質問だけをするようにしてください。)

于 2016-02-18T18:34:06.903 に答える