Heim >Backend-Entwicklung >PHP-Problem >So berechnen Sie den Countdown in PHP
So implementieren Sie den Countdown in PHP: 1. Konfigurieren Sie den täglichen Aktivitätszeitraum 2. Berechnen Sie den Zeitunterschied zwischen dem Server und dem Client 3. Durch „if(nMS>5*59*1000&&nMS<=5*60* 1000){..}“-Code kann zur Implementierung des Countdowns verwendet werden.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.4, Dell G3-Computer.
Wie berechnet man den Countdown in PHP?
Detaillierte Erklärung zur Implementierung der Echtzeit-Countdown-Funktion in PHP
Die Details lauten wie folgt:
In den letzten Tagen hat das Unternehmen wird eine zeitlich begrenzte Einkaufsfunktion haben. Dazu ist ein Countdown erforderlich. Es muss ein Echtzeit-Countdown vorhanden sein.
Anforderungen:
1) Es muss eine Echtzeit-Countdown-Anzeige von Stunden, Minuten und Sekunden vorhanden sein 2) Das Ändern von Datum und Uhrzeit auf der Clientseite hat keinen Einfluss auf die normale Anzeige des Countdowns (d. h. die Verwendung der Serverzeit als Genaue)
Tatsächlich gelten hierfür die gleichen Anforderungen wie die Zeitbegrenzungsfunktion vieler Prüfungen und andere Systeme.
Lösungsideen:1) Sie können Ajax nicht verwenden, um die Serverzeit jede Sekunde abzurufen.
Der Echtzeit-Countdown muss also mit Javascript implementiert werden. Es gibt viele von Beispielen im Internet.
2) Das Problem besteht nun darin, die Auswirkungen der Datums- und Zeitänderung des Clients auf unsere Anzeige zu ermitteln.
Die Lösung besteht darin, den Zeitunterschied zwischen der Zeit des Clients und der des Servers zu berechnen , das Problem ist gelöst.
Auf diese Weise müssen Sie PHP nur einmal ausführen. Die Echtzeit-Countdown-Zeit wird mit der Serverzeit synchronisiert.
Theoretisch wird es zu einem Fehler kommen von 1 Sekunde. (Der konkrete Grund ist: Es hat etwas mit der Internetgeschwindigkeit zu tun (je schneller die Internetgeschwindigkeit, desto kleiner der Fehler), aber dies hat niemals Auswirkungen auf unsere oben genannten Anforderungen.
Beispiel:Code :
<?php //php的时间是以秒算。js的时间以毫秒算 date_default_timezone_set("Asia/Hong_Kong");//地区 //配置每天的活动时间段 $starttimestr = "09:00:00"; $endtimestr = "18:30:00"; $starttime = strtotime($starttimestr); $endtime = strtotime($endtimestr); $nowtime = time(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>PHP实时倒计时!</title> <script language="JavaScript"> <!-- // var EndTime=<?=$endtime*1000?>; var NowTime = new Date(); //计算出服务器和客户端的时间差。 var dTime = <?=$nowtime*1000?>-NowTime.getTime(); function GetRTime(){ var NowTime = new Date(); var nMS = EndTime - NowTime.getTime()-dTime; var nH=Math.floor(nMS/(1000*60*60)) % 24; var nM=Math.floor(nMS/(1000*60)) % 60; var nS=Math.floor(nMS/1000) % 60; document.getElementById("RemainH").innerHTML=nH; document.getElementById("RemainM").innerHTML=nM; document.getElementById("RemainS").innerHTML=nS; if(nMS>5*59*1000&&nMS<=5*60*1000) { alert("还有最后五分钟!"); } setTimeout("GetRTime()",1000); } window.onload=GetRTime; // --> </script> </head> <body> <h1><strong id="RemainH">XX</strong>:<strong id="RemainM">XX</strong>:<strong id="RemainS">XX</strong></h1> </body> </html>
Beispiel 2:
die oben genannten Fehler geändert
Code:
<?php //php的时间是以秒算。js的时间以毫秒算 date_default_timezone_set("Asia/Hong_Kong");//地区 //配置每天的活动时间段 $starttimestr = "09:00:00"; $endtimestr = "18:30:00"; $starttime = strtotime($starttimestr); $endtime = strtotime($endtimestr); $nowtime = time(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>PHP实时倒计时!</title> <script language="JavaScript"> <!-- // var EndTime=<?=$endtime*1000?>; var NowTime = new Date(); //计算出服务器和客户端的时间差。 var dTime = NowTime.getTime()-<?=$nowtime*1000?>; var runtimes = 0; function GetRTime(){ var NowTime = new Date(); var dTimeNew = NowTime.getTime()-<?=$nowtime*1000?>; var dTimesM = Math.abs(Math.floor((dTimeNew-runtimes*1000-dTime)/1000));//客户端时间和服务器当前时间的差 if (dTimesM>1) {//如果用户修改了客户端时间,就重新load本页 window.location.reload(); } var nMS = EndTime - NowTime.getTime()+dTime; var nH=Math.floor(nMS/(1000*60*60)) % 24; var nM=Math.floor(nMS/(1000*60)) % 60; var nS=Math.floor(nMS/1000) % 60; document.getElementById("RemainH").innerHTML=nH; document.getElementById("RemainM").innerHTML=nM; document.getElementById("RemainS").innerHTML=nS; if(nMS>5*59*1000&&nMS<=5*60*1000) { alert("还有最后五分钟!"); } runtimes++; setTimeout("GetRTime()",1000); } window.onload=GetRTime; // --> </script> </head> <body> <h1><strong id="RemainH">XX</strong>:<strong id="RemainM">XX</strong>:<strong id="RemainS">XX</strong></h1> </body> </html>
Beispiel 3:
Die Idee ist anders, viel einfacher.
Code:
<?php //php的时间是以秒算。js的时间以毫秒算 date_default_timezone_set("Asia/Hong_Kong");//地区 //配置每天的活动时间段 $starttimestr = "09:00:00"; $endtimestr = "13:50:00"; $starttime = strtotime($starttimestr); $endtime = strtotime($endtimestr); $nowtime = time(); if ($nowtime<$starttime){ die("活动还没开始,活动时间是:{$starttimestr}至{$endtimestr}"); } $lefttime = $endtime-$nowtime; //实际剩下的时间(秒) ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>PHP实时倒计时!</title> <script language="JavaScript"> <!-- // var runtimes = 0; function GetRTime(){ var nMS = <?=$lefttime?>*1000-runtimes*1000; var nH=Math.floor(nMS/(1000*60*60))%24; var nM=Math.floor(nMS/(1000*60)) % 60; var nS=Math.floor(nMS/1000) % 60; document.getElementById("RemainH").innerHTML=nH; document.getElementById("RemainM").innerHTML=nM; document.getElementById("RemainS").innerHTML=nS; if(nMS>5*59*1000&&nMS<=5*60*1000) { alert("还有最后五分钟!"); } runtimes++; setTimeout("GetRTime()",1000); } window.onload=GetRTime; // --> </script> </head> <body> <h1><strong id="RemainH">XX</strong>:<strong id="RemainM">XX</strong>:<strong id="RemainS">XX</strong></h1> </body> </html>
Empfohlenes Lernen: „
PHP-Video. TutorialDas obige ist der detaillierte Inhalt vonSo berechnen Sie den Countdown in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!