Detaillierte Erklärung, wie man die Echtzeit-Countdown-Funktion in PHP implementiert

墨辰丷
Freigeben: 2023-03-27 21:56:02
Original
2887 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Implementierungsmethode der PHP-Echtzeit-Countdown-Funktion vorgestellt und die spezifischen Schritte und zugehörigen Betriebsfähigkeiten von PHP in Kombination mit der Zeitstempeloperation von Front-End-JS analysiert, um die Countdown-Funktion anhand spezifischer Beispiele zu implementieren Bedürftige können sich darauf beziehen

Das Beispiel in diesem Artikel beschreibt, wie die Echtzeit-Countdown-Funktion in PHP implementiert wird. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

In den letzten Tagen wird das Unternehmen eine zeitlich begrenzte Einkaufsfunktion anbieten. Dies erfordert einen Countdown und einen Echtzeit-Countdown.

Anforderungen:

1) Ein Echtzeit-Countdown von Stunden, Minuten und Sekunden muss angezeigt werden
2) Das Ändern von Datum und Uhrzeit auf der Clientseite wird durchgeführt hat keinen Einfluss auf die normale Anzeige des Countdowns (d. h. basierend auf der Serverzeit)

Tatsächlich gelten hierfür die gleichen Anforderungen wie für die Zeitbegrenzungsfunktion vieler Prüfungs- und anderer Systeme

Lösungsideen:

1) Sie können Ajax nicht immer jedes Mal verwenden. Erhalten Sie jede Sekunde die Serverzeit.

Der Echtzeit-Countdown muss also mit Javascript implementiert werden . Das ist sehr einfach. Es gibt viele Beispiele im Internet.

2) Das Problem besteht nun darin, das Problem der Änderung des Datums und der Uhrzeit auf unserer Anzeige zu lösen.
Die Lösung besteht darin, den Zeitunterschied zwischen der Clientzeit und der Serverzeit zu berechnen. Auf diese Weise ist das Problem gelöst.

Auf diese Weise müssen Sie PHP nur einmal ausführen Zeit ist die gleiche wie Die Zeit des Servers ist synchronisiert. Theoretisch ist sie synchronisiert, aber beim tatsächlichen Test tritt ein Fehler von 1 Sekunde auf (der spezifische Grund hängt mit der Netzwerkgeschwindigkeit zusammen. Je schneller die Netzwerkgeschwindigkeit, desto kleiner ist der Fehler), aber das ist definitiv Es wird unsere oben genannten Anforderungen nicht beeinflussen.

Instanz:

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>
Nach dem Login kopieren

Beispiel 2:

Einige der 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>
Nach dem Login kopieren

Beispiel 3:

Die Idee ist anders und 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>
Nach dem Login kopieren

Das Obige ist Der gesamte Inhalt dieses Artikels soll für das Studium aller hilfreich sein.


Verwandte Empfehlungen:

jQuery-Implementierungscode für

Countdown und SMS-Countdown-Funktionen

js implementiert

CountdownAnimationseffekt-Beispielfreigabe über Date-Objekt

jQuery implementiert das Senden von Textnachrichten

CountdownFunktion

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung, wie man die Echtzeit-Countdown-Funktion in PHP implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!