本文目錄一覽:
- 1、求一個PHP的簡單倒計時功能
- 2、用JavaScript或php怎麼寫一個倒計時時鐘啊
- 3、php 倒計時
- 4、php循環倒計時的代碼
- 5、如何用PHP做一個循環的倒計時牌
- 6、php中怎樣實現倒計時功能
求一個PHP的簡單倒計時功能
要求: 1) 要有小時分鐘秒的實時倒計時的顯示 2)用戶端修改日期時間不會影響到倒計時的正常顯示(也就是以服務器時間為準) 其實這和很多的考試等系統的時間限制功能同樣的要求. 解決思路: 1)總不能用ajax每秒都獲取服務器時間吧. 所以實時倒計時一定要用javascript實現.這很簡單.網上一大把的例子. 2)現在問題是解決用戶端修改日期時間對我們的顯示的影響. 解決的辦法是計算出用戶端的時間和服務器的時間差.這樣問題的完成解決了. 這樣只需要運行一次php.實時倒計時的時間就和服務器的時間同步了. 理論是同步的,但實際測試會有1秒的誤差.(具體原因就是和網速有關,網速越快,誤差就越小),但這決不會影響到我們上面的要求了.
用JavaScript或php怎麼寫一個倒計時時鐘啊
這個是JavaScript的
距離北京奧運會開幕還有
br
html
head
title倒計時測試/title
!–倒計時設置代碼–
script language=”JavaScript”
!– hide script from old browser
var DifferenceHour = -1
var DifferenceMinute = -1
var DifferenceSecond = -1
var Tday = new Date(“Aug 8, 2008 20:00:00”) //**倒計時時間點-注意格式
var daysms = 24 * 60 * 60 * 1000
var hoursms = 60 * 60 * 1000
var Secondms = 60 * 1000
var microsecond = 1000
function clock()
{
var time = new Date()
var hour = time.getHours()
var minute = time.getMinutes()
var second = time.getSeconds()
var timevalue = “”+((hour 12) ? hour-12:hour)
timevalue +=((minute 10) ? “:0″:”:”)+minute
timevalue +=((second 10) ? “:0″:”:”)+second
timevalue +=((hour 12 ) ? ” PM”:” AM”)
// document.formnow.now.value = timevalue
var convertHour = DifferenceHour
var convertMinute = DifferenceMinute
var convertSecond = DifferenceSecond
var Diffms = Tday.getTime() – time.getTime()
DifferenceHour = Math.floor(Diffms / daysms)
Diffms -= DifferenceHour * daysms
DifferenceMinute = Math.floor(Diffms / hoursms)
Diffms -= DifferenceMinute * hoursms
DifferenceSecond = Math.floor(Diffms / Secondms)
Diffms -= DifferenceSecond * Secondms
var dSecs = Math.floor(Diffms / microsecond)
if(convertHour != DifferenceHour) document.formnow.dd.value=DifferenceHour
if(convertMinute != DifferenceMinute) document.formnow.hh.value=DifferenceMinute
if(convertSecond != DifferenceSecond) document.formnow.mm.value=DifferenceSecond
document.formnow.ss.value=dSecs
// document.formnow.Tnow.value= DifferenceHour DifferenceMinute + DifferenceSecond + dSecs
setTimeout(“clock()”,1000)
}
// end hiding —
/script
/head
!–BODY裡面的ONLOAD注意–
body onload=”clock();return true” text=”red”
!–實現顯示–
form name=”formnow”
input name=”dd” type=”text” style=”border:0;” size=2
天
input name=”hh” type=”text” style=”border:0;” size=2
小時
input name=”mm” type=”text” style=”border:0;” size=2
分
input name=”ss” type=”text” style=”border:0;” size=2
秒
/form
!–倒計時完畢–
這個是php的
?php
/**************************************
**功能:PHP實時倒計時
**創建日期:2009-2-26
**作者:潘繼強 panjeck@tom.com
**
***************************************/
//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” “”
html xmlns=””
head
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /
titlePHP實時倒計時!/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 (dTimesM1) {//如果用戶修改了客戶端時間,就重新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(nMS5*59*1000nMS=5*60*1000)
{
alert(“還有最後五分鐘!”);
}
runtimes++;
setTimeout(“GetRTime()”,1000);
}
window.onload=GetRTime;
// —
/script
/head
body
h1strong id=”RemainH”XX/strong:strong id=”RemainM”XX/strong:strong id=”RemainS”XX/strong/h1
/body
/html
實例3:
思路不同,簡單多了.
?php
/**************************************
**功能:PHP實時倒計時
**創建日期:2009-2-26
**作者:潘繼強 panjeck@tom.com
**
***************************************/
//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” “”
html xmlns=””
head
meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /
titlePHP實時倒計時!/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(nMS5*59*1000nMS=5*60*1000)
{
alert(“還有最後五分鐘!”);
}
runtimes++;
setTimeout(“GetRTime()”,1000);
}
window.onload=GetRTime;
// —
/script
/head
body
h1strong id=”RemainH”XX/strong:strong id=”RemainM”XX/strong:strong id=”RemainS”XX/strong/h1
/body
/html
另外,樓下的那個冷笑天只是一個秒錶,不知道樓主要的是秒錶還是倒計時,要是還有什麼其他需要或者代碼看不懂的,m我
呵呵呵
php 倒計時
?php
function compDate($Date_1,$Date_2){
$Date_List_1=explode(“-“,$Date_1);
$Date_List_2=explode(“-“,$Date_2);
$d1=mktime(0,0,0,$Date_List_1[1],$Date_List_1[2],$Date_List_1[0]);
$d2=mktime(0,0,0,$Date_List_2[1],$Date_List_2[2],$Date_List_2[0]);
$Days=round(($d1-$d2)/3600/24);
return $Days;
}
$today=date(“Y-m-d H:i:s”);
$day=”2010-05-01 00:00:00″;
$days=compDate($day,$today);
echo $days;
?
php循環倒計時的代碼
這個可能要配合子框架和JS的功能來實現.
思路是:
1. 在主框架頁面上,安排一個表單 + 一個文本框(設變量名為 end_time),用來設置時間(target 指向子框)(日期格式: 2009-05-28 12:00:00 )
2. 再插入一個對象用來顯示剩餘時間(可以是文本框,也可以是span標記,還可以是其它可以用JS替換內容的對象就可以了)(假設它的標記是span id=”timeout”/span).
3. 在主框架上插入一子框架,子框架的源文件指向php文件
4. 在PHP源文件中插入適當代碼.代碼的作用主要分幾部分,
A.計算剩餘時間
B.用於更新主頁面的剩餘時間對象的JS代碼.
C.適當設置頁面刷新的時間(用JS或刷頁刷新代碼)
部分代碼:
1.主框架(index.php)
form action=”timer.php” method=”post” name=”form1″ target=”timerframe” id=”form1″
table border=”0″
tr
td開始時間
label/label/td
tdinput name=”end_time” type=”text” id=”end_time” value=”?php echo date(“Y-m-d H:i:s”);?” //td
tdlabel
input type=”submit” name=”Submit” value=”提交” /
/label/td
/tr
/table
table width=”400″ border=”0″
tr
td /td
/tr
tr
td離結束還有:span class=”STYLE1″ id=”timeout”aaaaa/span/td
/tr
/table
/form
iframe name=”timerframe” width=”1″ height=”1″/iframe
2.子框架(timer.php)
body
?php
$endTime=strtotime($_REQUEST[‘end_time’]); //將終止時間轉為nix_timestamp格式
$now=time(); //當前時間
//printf( “N:%s,\nbrE:%s\nbr”,$now,$endTime);
if($now=$endTime) //如果時間已過結束時間
{
?
script language=”javascript”
var f=parent.document.getElementById(“form1”)
f.end_time.value=’?php echo date(“Y-m-d H:i:s”,$endTime+2*3600);?’
f.submit()
/script
?php
exit;
}
$timeLeft=$endTime-$now; //計算剩餘的秒數,並轉換為對應的 時:分:秒 的格式
?
script language=”javascript”
parent.document.getElementById(“timeout”).innerHTML=’?php echo date(“H:i:s”,$timeLeft-8*3600);?’
function refresh()
{
var f=parent.document.getElementById(“form1”)
f.submit();
}
setTimeout(“refresh()”,5000)
/script
/body
如何用PHP做一個循環的倒計時牌
?php
$StartDate = ’06-07′; //開始日期
$OverDate = ’06-08′; //結束日期
date_default_timezone_set(‘Etc/GMT-8’); //設置時區
$time = time();
$datetime = strtotime(date(‘Y-m-d’, $time)); // 取得今天凌晨的時間
$year = date(‘Y’, $time);
$OverTime = strtotime(“$year-$OverDate”); // 取得結束的時間
if($OverTime $datetime){ // 判斷有沒有過了結束日期 如 8 號,若過了,則開始明年的倒計時
$year++;
$OverTime = strtotime(“$year-$OverDate”);
}
$StartTime = strtotime(“$year-$StartDate”);
$n = $StartTime – $time; //計算相差的時間(秒)
if($n = 0){ // 若是負數 則已經開始了
$n = abs($n) + 86400; // 若是要精確到 時 分 秒 則把這行去了
$str = “高考已經開始 第 %d 天”; //格式 輸出
} else {
$str = “距 $year 年高考還有: %d 天 %d 小時 %d 分 %d 秒”;
}
//下面的 $day, $hour, $min, $sec 若是已經開始則表示開的已過的時間,否則則是相差的時間
$day = intval($n / 86400);
$hour = intval(($n % 86400) / 3600);
$min = intval(($n %3600) / 60);
$sec = $n % 60;
printf($str, $day, $hour, $min, $sec);
?
php中怎樣實現倒計時功能
可以考慮asp實現:
1.HiddenField 控件儲存時間
!–2700秒時間–
asp:HiddenField ID=”hidTime” runat=”server” Value=”2700″ /
2.js代碼
script language=”javascript” type=”text/javascript”
var time;
var minutes;
var seconds;
var str;
function ShowTime2() {
if(document.getElementById(“btnSubmitExam”) !=null)
{
time = document.getElementById(“hidTime”).value;
time = time – 1;
document.getElementById(“hidTime”).value = time;
minutes = parseInt(time / 60);
seconds = time % 60;
document.getElementById(“DjTimeDiv”).innerHTML = “剩餘時間:” + minutes + “分鐘” + seconds + “秒”;
if (time == 1) {
document.getElementById(“DjTimeDiv”).innerHTML=”剩餘時間:0分鐘0秒”;
document.getElementById (“btnSubmitExam”).click();
// window.close();
}else
{
setTimeout(“ShowTime2()”, 1000);
}
}else
{
document.getElementById(“DjTimeDiv”).innerHTML=”剩餘時間:0分鐘0秒”;
}
}
/script
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/182490.html