<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php實時倒計時功能實現方法詳解

    時間:2025-10-12 03:16:02 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

      /pic/p>

      date_default_timezone_set("Asia/Hong_Kong");/pic/p>

      /pic/p>

      $starttimestr = "09:00:00";

      $endtimestr = "18:30:00";

      $starttime = strtotime($starttimestr);

      $endtime = strtotime($endtimestr);

      $nowtime = time();

      ?>

      <!DOCTYPE html PUBLIC "-/pic/pic/pic/p>

      "/pic/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <html xmlns="/pic/1999/xhtml">

      <head>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      <title>PHP實時倒計時!</title>

      <script language="JavaScript">

      <!-- /pic/p>

      var EndTime=<?=$endtime*1000?>;

      var NowTime = new Date();

      /pic/p>

      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;

      /pic/p>

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

      /pic/p>

      date_default_timezone_set("Asia/Hong_Kong");/pic/p>

      /pic/p>

      $starttimestr = "09:00:00";

      $endtimestr = "18:30:00";

      $starttime = strtotime($starttimestr);

      $endtime = strtotime($endtimestr);

      $nowtime = time();

      ?>

      <!DOCTYPE html PUBLIC "-/pic/pic/pic/p>

      "/pic/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <html xmlns="/pic/1999/xhtml">

      <head>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      <title>PHP實時倒計時!</title>

      <script language="JavaScript">

      <!-- /pic/p>

      var EndTime=<?=$endtime*1000?>;

      var NowTime = new Date();

      /pic/p>

      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));/pic/p>

      if (dTimesM>1) {/pic/p>

      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;

      /pic/p>

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

      /pic/p>

      date_default_timezone_set("Asia/Hong_Kong");/pic/p>

      /pic/p>

      $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; /pic/p>

      ?>

      <!DOCTYPE html PUBLIC "-/pic/pic/pic/p>

      "/pic/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <html xmlns="/pic/1999/xhtml">

      <head>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      <title>PHP實時倒計時!</title>

      <script language="JavaScript">

      <!-- /pic/p>

      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;

      /pic/p>

      </script>

      </head>

      <body>

      <h1><strong id="RemainH">XX</strong>:<strong id="RemainM">XX</strong>:<strong id="RemainS">XX</strong></h1>

      </body>

      </html>

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

    php實時倒計時的三種實現方法實例09-08

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

    PHP實現搜索查詢功能的方法技巧09-13

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

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

    詳解PHP實現異步調用的4種方法10-08

    php實現文件上傳及頭像預覽功能07-10

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

    php中怎么實現回刪功能07-14

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