要件:
1. 時、分、秒のリアルタイムのカウントダウン表示が必要です。
2. クライアント側で日付と時刻を変更しても、カウントダウンの通常の表示には影響しません (つまり、サーバー時間が優先されます)。 実際、これは多くの試験などのシステム時間制限機能の要件と同じです。
解決策:
1. ajax を使用してサーバー時間を毎秒取得することはできないため、リアルタイムのカウントダウンは JavaScript で実装する必要があります。これは非常に簡単で、インターネット上に多くの例があります。
2. ここでの問題は、クライアントによって変更された日付と時刻が表示に与える影響を解決することです。解決策は、クライアント時間とサーバー時間の間の時間差を計算することです。これにより、問題は php を 1 回実行するだけで完全に解決され、リアルタイムのカウントダウン時間がサーバー時間と同期されます。理論的には同期ですが、実際のテストでは 1 秒の誤差が生じます (具体的な理由はネットワーク速度に関連しています。ネットワーク速度が速いほど誤差は小さくなります)。ただし、これが上記の要件に影響することはありません。
コード 1:
コード 2、コード 1 のいくつかのバグを修正:
コード 3、さまざまなアイデア、より単純: