1
var austDay = new Date("May 18, 2012 00:00:00");
            $('#countdown').countdown({until: austDay});

私が得たものです。これを静的にしたいのですが、つまり、すべてのタイムゾーンで同じカウントダウンが表示されます。したがって、PCでタイムゾーンや日付を変更しても、カウントダウンに影響を与えることはなく、たとえば残り8時間である必要があります。

Javascriptがクライアント側であるため、おそらくこれは不可能ですか?

私に何ができる?私は本当にそれがカウントダウンを生きることを望んでいるので、あなたはリフレッシュする必要があります。たぶん私はPHPの助けを借りることができますか?

カウントダウンは同じである必要があります。たとえば、残り4時間です。また、ニューヨークとアジアでもカウントダウンが表示されます。

4

2 に答える 2

2

PHPを使用して、サーバー時間をクライアントに渡すことができます。

var time = new Date(<?php echo time()*1000; ?>);
于 2012-05-10T20:41:22.223 に答える
0
var austDay = new Date("May 18, 2012 00:00:00");

これにより、日付と時刻が表示された日付オブジェクトがユーザーのローカル タイムゾーンで作成されます。UTC 日付を作成するには、代わりに次のようにします。

var austDay = new Date(Date.UTC(2012, 4, 18));

...ここで、4 は0 から始まる月の数字です (2012 と 18 は明らかに年と日です)。

後で日付を表示する必要がある場合は、UTC 以外の対応する関数の代わりに「UTC」関数を使用します。次に例を示します。

console.log(austDay.toUTCString()) // "Fri, 18 May 2012 00:00:00 GMT"

もう 1 つの問題は、ユーザーが時計を変更できることです。「残り8時間」のようなものを与えて絶対に確実にするには、サーバーの時間をクライアントの時間と比較し、それに基づいて日付を設定する必要があります.

たとえば、サーバーが明日の正午に発生し、夜の 9:00 であることを認識している場合、カウントダウンは 15 時間で終了します。絶対時間を渡す代わりに、カウントダウンの準備が整うまでの残り時間をクライアントに伝えることができます。

var austDay = new Date();
var hoursLeft = <?php echo $something ?>;

austDay.addHours(hoursLeft);

おそらく、数時間ではなく数秒以下で実行することをお勧めします。ここでは、簡単にするために時間を使用しました。

于 2012-05-10T20:51:10.403 に答える