最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php實時倒計時功能實現(xiàn)方法詳解

 更新時間:2017年02月27日 14:08:47   作者:小炒花生米  
這篇文章主要介紹了php實時倒計時功能實現(xiàn)方法,結(jié)合具體實例形式分析了php結(jié)合前臺JS的時間戳操作實現(xiàn)倒計時功能的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了php實時倒計時功能實現(xiàn)方法。分享給大家供大家參考,具體如下:

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

要求:

1) 要有小時分鐘秒的實時倒計時的顯示
2)用戶端修改日期時間不會影響到倒計時的正常顯示(也就是以服務(wù)器時間為準(zhǔn))

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

解決思路:

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

所以實時倒計時一定要用javascript實現(xiàn).這很簡單.網(wǎng)上一大把的例子.

2)現(xiàn)在問題是解決用戶端修改日期時間對我們的顯示的影響.
解決的辦法是計算出用戶端的時間和服務(wù)器的時間差.這樣問題的完成解決了.

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

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

實例:

代碼:

<?php
//php的時間是以秒算。js的時間以毫秒算
date_default_timezone_set("Asia/Hong_Kong");//地區(qū)
//配置每天的活動時間段
$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();
//計算出服務(wù)器和客戶端的時間差。
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

代碼:

<?php
//php的時間是以秒算。js的時間以毫秒算
date_default_timezone_set("Asia/Hong_Kong");//地區(qū)
//配置每天的活動時間段
$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();
//計算出服務(wù)器和客戶端的時間差。
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));//客戶端時間和服務(wù)器當(dāng)前時間的差
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:

思路不同,簡單多了.

代碼:

<?php
//php的時間是以秒算。js的時間以毫秒算
date_default_timezone_set("Asia/Hong_Kong");//地區(qū)
//配置每天的活動時間段
$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>

PS:這里再為大家推薦幾款時間及日期相關(guān)工具供大家參考使用:

在線日期/天數(shù)計算器:
http://tools.jb51.net/jisuanqi/date_jisuanqi

在線日期計算器/相差天數(shù)計算器:
http://tools.jb51.net/jisuanqi/datecalc

在線日期天數(shù)差計算器:
http://tools.jb51.net/jisuanqi/onlinedatejsq

Unix時間戳(timestamp)轉(zhuǎn)換工具:
http://tools.jb51.net/code/unixtime

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php日期與時間用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • PHP實現(xiàn)倒計時功能

    PHP實現(xiàn)倒計時功能

    這篇文章主要為大家詳細(xì)介紹了PHP實現(xiàn)倒計時功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • 簡單的php 驗證圖片生成函數(shù)

    簡單的php 驗證圖片生成函數(shù)

    本函數(shù)可以生成簡單的驗證圖片,用于輸入的驗證。
    2009-05-05
  • php curl_init函數(shù)用法

    php curl_init函數(shù)用法

    使用PHP的cURL庫可以簡單和有效地去抓網(wǎng)頁。你只需要運行一個腳本,然后分析一下你所抓取的網(wǎng)頁,然后就可以以程序的方式得到你想要的數(shù)據(jù)了
    2014-01-01
  • 解析php二分法查找數(shù)組是否包含某一元素

    解析php二分法查找數(shù)組是否包含某一元素

    本篇文章是對在php中二分法查找數(shù)組是否包含某一元素進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Memcached常用命令以及使用說明詳解

    Memcached常用命令以及使用說明詳解

    Memcached常用命令以及使用說明詳解
    2013-06-06
  • 如何讓PHP的代碼更安全

    如何讓PHP的代碼更安全

    雖然PHP是世界上最好的語言,但是也有一些因為弱類型語言的安全性問題出現(xiàn)。針對于PHP代碼開發(fā)的網(wǎng)站,在給客戶做網(wǎng)站安全檢測的同時,大大小小的都會存在網(wǎng)站的后臺管理頁面被繞過并直接登錄后臺的漏洞,而且每個網(wǎng)站的后臺被繞過的方式都不一樣。本文將討論此問題。
    2021-05-05
  • PHP安全配置優(yōu)化詳解

    PHP安全配置優(yōu)化詳解

    這篇文章主要介紹了PHP安全配置優(yōu)化詳解,優(yōu)化的幾個重要的知識點都列舉出了,有需要的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • PHP實現(xiàn)的sqlite數(shù)據(jù)庫連接類

    PHP實現(xiàn)的sqlite數(shù)據(jù)庫連接類

    這篇文章主要介紹了PHP實現(xiàn)的sqlite數(shù)據(jù)庫連接類,涉及針對SQLite數(shù)據(jù)庫的連接與增刪改查等sql操作用法,非常具有實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP設(shè)計模式之觀察者模式定義與用法分析

    PHP設(shè)計模式之觀察者模式定義與用法分析

    這篇文章主要介紹了PHP設(shè)計模式之觀察者模式定義與用法,結(jié)合實例形式分析了php觀察者模式的概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-04-04
  • PHP簡單實現(xiàn)無限級分類的方法

    PHP簡單實現(xiàn)無限級分類的方法

    這篇文章主要介紹了PHP簡單實現(xiàn)無限級分類的方法,涉及sql語句及遞歸調(diào)用的相關(guān)技巧,需要的朋友可以參考下
    2016-05-05

最新評論

临沂市| 武山县| 榕江县| 中江县| 且末县| 巴彦淖尔市| 海宁市| 葵青区| 侯马市| 文山县| 滨州市| 丰顺县| 内江市| 丰顺县| 定远县| 双辽市| 永宁县| 社旗县| 砀山县| 汝城县| 集贤县| 江孜县| 晋城| 湛江市| 资源县| 济南市| 屯门区| 孝义市| 肥乡县| 南安市| 灵璧县| 苏尼特右旗| 浦北县| 龙门县| 阿尔山市| 南丹县| 革吉县| 黄石市| 大渡口区| 宜君县| 郁南县|