<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    php實時倒計時功能實現方法詳解

    時間:2025-04-21 07:56:46 php語言 我要投稿
    • 相關推薦

    php實時倒計時功能實現方法詳解

      文章主要介紹了php實時倒計時功能實現方法,結合具體實例形式分析了php結合前臺JS的時間戳操作實現倒計時功能的具體步驟與相關操作技巧,需要的朋友可以參考下.

      這幾天公司要做一個限時購物的功能.這就要做到倒計時,要有實時的倒計時.

      要求:

      1) 要有小時分鐘秒的實時倒計時的顯示

      2)用戶端修改日期時間不會影響到倒計時的正常顯示(也就是以服務器時間為準)

      其實這和很多的考試等系統的時間限制功能同樣的要求.

      解決思路:

      1)總不能用ajax每秒都獲取服務器時間吧.

      所以實時倒計時一定要用javascript實現.這很簡單.網上一大把的例子.

      2)現在問題是解決用戶端修改日期時間對我們的顯示的影響.

      解決的辦法是計算出用戶端的時間和服務器的時間差.這樣問題的完成解決了.

      這樣只需要運行一次php.實時倒計時的時間就和服務器的時間同步了.

      理論是同步的,但實際測試會有1秒的誤差.(具體原因就是和網速有關,網速越快,誤差就越小),但這決不會影響到我們上面的要求了.

      實例:

      代碼:

      ?

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      <?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>

      實例2:

      修改了上面的一些bug

      代碼:

      ?

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      47

      48

      49

      50

      51

      52

      <?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>

      實例3:

      思路不同,簡單多了.

      代碼:

      ?

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      44

      45

      46

      <?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>

    【php實時倒計時功能實現方法詳解】相關文章:

    php實時倒計時的三種實現方法實例05-25

    php+js實現倒計時功能02-08

    PHP實現搜索查詢功能的方法技巧08-01

    PHP中讀取大文件實現方法詳解04-30

    php實現圖片縮放功能類02-04

    詳解PHP實現異步調用的4種方法07-22

    php中怎么實現回刪功能04-21

    php中實現回刪功能實例01-26

    php實現文件上傳及頭像預覽功能05-25

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人