<pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

          <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

          <p id="bbfd9"></p>

          <p id="bbfd9"><cite id="bbfd9"></cite></p>

            <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

            <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
            <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
            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

                    <pre id="bbfd9"><del id="bbfd9"><dfn id="bbfd9"></dfn></del></pre>

                    <ruby id="bbfd9"></ruby><p id="bbfd9"><mark id="bbfd9"></mark></p>

                    <p id="bbfd9"></p>

                    <p id="bbfd9"><cite id="bbfd9"></cite></p>

                      <th id="bbfd9"><form id="bbfd9"><dl id="bbfd9"></dl></form></th>

                      <p id="bbfd9"><cite id="bbfd9"></cite></p><p id="bbfd9"></p>
                      <p id="bbfd9"><cite id="bbfd9"><progress id="bbfd9"></progress></cite></p>
                      飘沙影院