0

私のスクリプトにはカウントダウン タイマーがありますが、時間はいつでも変更される可能性があるため、サーバーによって制御される必要があります。

通常は 1 時間からカウントダウンしますが、0 に近づくと、ユーザーが PHP からイベントを起動すると、MySQL データベースの時間がリセットされ、タイマーが元の時間に戻ります。

    setInterval(function() {
        $('#timer').load('api/getdata.php?clock=1');
    }, 600); 

ご覧のとおり、現在、カウントダウンは 600 ミリ秒ごとに呼び出される PHP スクリプトによって返されます (1000 ミリ秒は 1 秒スキップしているように見えることがあります)。

PHP スクリプトと同期する単純なテキスト カウントダウン (分と秒) が必要です。ただし、30 秒未満になると、毎秒同期する必要があります。

これはJSで可能ですか?

これはPHPのコードです

$from = time();
$to = strtotime($row['clock']);

$Timer = date('i:s', $to - $from);
echo("$Timer");
4

1 に答える 1

1

これに取り組む最も簡単な方法だと思います(誰かが間違っている場合は修正してください!);

  • サーバーから時刻を取得する
  • [json] を返す
    • [サーバー時間]
    • [seconds_left]
    • [左ミリ秒]

これらの値を関数に設定し、契約の要求どおりに呼び出されるようにします。これが 60 秒未満に達し始めるとすぐに、間隔を で割って短くします (たとえば、秒数ですが、これは最適ではないかもしれません :-) )。

60/60   = 1
50 / 60 = .73
30 / 60 = .5
etc...

ミリ秒が本当に重要である場合、実際に何を達成しようとしているのかについて、もう少し洞察を提供する必要があるのではないでしょうか?

于 2013-10-30T19:17:12.857 に答える