時、分、秒のリアルタイムのカウントダウンを表示する必要があります。クライアント側で日付と時刻を変更しても、カウントダウンの通常の表示 (つまり、サーバー時間に基づく) には影響しません。
実際、これは多くの試験やその他のシステムの時間制限機能と同じ要件です。
ajax を使用してサーバー時間を毎秒取得することはできないため、リアルタイムのカウントダウンは JavaScript で実装する必要があります。これは非常に簡単で、インターネット上に多くの例があります。
現在の問題は、ユーザー側で変更された日時が表示に与える影響を解決することです。
解決策は、クライアント時間とサーバー時間の間の時間差を計算し、問題を解決することです。
この方法では、php を 1 回実行するだけで済み、リアルタイムのカウントダウン時間がサーバー時間と同期されます。
理論上は同期していますが、実際のテストでは1秒程度の誤差が生じます。 (具体的な理由はインターネット速度に関連しています。インターネット速度が速いほど、誤差は小さくなります。) しかし、これが上記の要件に影響することはありません。
注: フラッシュ セールの時間は午前から午後 10 時までです。
コードは次のとおりです:
コードをコピーします コードは次のとおりです:
//PHP 時間は秒単位で計算されます。 js 時間はミリ秒単位で計算されます
date_default_timezone_set('PRC');
//date_default_timezone_set("Asia/Hong_Kong");//地域
//毎日のアクティビティの期間を構成します
$starttimestr = "08:00:00";
$endtimestr = "22:00:00";
$starttime = strtotime($starttimestr); ($endtimestr);
$nowtime = time();
if ($nowtime<$starttime){
die("イベントはまだ開始されていません。イベント時間は {$starttimestr} です{$endtimestr }");
}
$lefttime = $endtime-$nowtime; //実際の残り時間 (秒)
?>