關(guān)于“php_幾秒前”的問題,小編就整理了【3】個相關(guān)介紹“php_幾秒前”的解答:
php怎么實(shí)現(xiàn)倒計(jì)時延遲?實(shí)例講述了php實(shí)時倒計(jì)時功能實(shí)現(xiàn)方法,具體如下:
這幾天公司要做一個限時購物的功能.這就要做到倒計(jì)時,要有實(shí)時的倒計(jì)時.
要求:
1) 要有小時分鐘秒的實(shí)時倒計(jì)時的顯示
2)用戶端修改日期時間不會影響到倒計(jì)時的正常顯示(也就是以服務(wù)器時間為準(zhǔn))
其實(shí)這和很多的考試等系統(tǒng)的時間限制功能同樣的要求.
解決思路:
1)總不能用ajax每秒都獲取服務(wù)器時間吧.
所以實(shí)時倒計(jì)時一定要用javascript實(shí)現(xiàn).這很簡單.網(wǎng)上一大把的例子.
2)現(xiàn)在問題是解決用戶端修改日期時間對我們的顯示的影響.
解決的辦法是計(jì)算出用戶端的時間和服務(wù)器的時間差.這樣問題的完成解決了.
這樣只需要運(yùn)行一次php.實(shí)時倒計(jì)時的時間就和服務(wù)器的時間同步了.
理論是同步的,但實(shí)際測試會有1秒的誤差.(具體原因就是和網(wǎng)速有關(guān),網(wǎng)速越快,誤差就越小),但這決不會影響到我們上面的要求了.
實(shí)例:
代碼:
<?php
//php的時間是以秒算。js的時間以毫秒算
date_default_timezone_set("Asia/Hong_Kong");//地區(qū)
//配置每天的活動時間段
$starttimestr = "09:00:00";
$endtimestr = "18:30:00";
php網(wǎng)絡(luò)考試系統(tǒng)的倒計(jì)時怎么做?1.用js的setinterval()來設(shè)一定倒計(jì)時,倒計(jì)時的初始值由php分配過來;
2.為了防止別人自己調(diào)試js,修改時間,每10秒鐘或更小用ajax檢測一下服務(wù)器,統(tǒng)一次差值,這樣就和服務(wù)器同步了。
3.在服務(wù)器每份試卷或每個人都是唯一的,只要開始啟用,到時自動過期,保存存一個“提交失敗”。如果同時答題的人數(shù)不是很巨大,直接存session里面,訪問量高的話存在數(shù)據(jù)庫里面。
4.當(dāng)?shù)褂?jì)時為0時自動提交到服務(wù)器,服務(wù)器設(shè)一個容錯時間,大概1分鐘左右,即網(wǎng)絡(luò)傳輸過程中超過1分鐘就會提交失敗。
5.在這考試期間,無論怎么刷新都是那一套題目,提交成功后就不能斷續(xù)做題;提交失敗后重新分配另一套題;重新開始計(jì)算時間;
6.避免題目重復(fù),當(dāng)提交失敗3次后,就不能再次做題了。雖然這樣做了,也只能防止菜鳥作弊! 代碼自己寫。。
php中如何獲得當(dāng)前時間?一、使用函式 date() 實(shí)現(xiàn) 在編輯器中輸入
,點(diǎn)擊回車就可以得知當(dāng)前的時間。其中Y是代表4位的年份,H是24小時制,i 是分鐘,如: "00" 至 "59" 。s -是秒,如: "00" 至 "59" 。 d 是幾日,二位數(shù)字,若不足二位則前面補(bǔ)零。 如: "01" 至 "31" 。m代表月份,二位數(shù)字,若不足二位則在前面補(bǔ)零,如: "01" 至 "12" 。 二、使用time函數(shù) 在編輯器中輸入echo date("y-m-d",$time)點(diǎn)擊回車就可以得知當(dāng)前的時間,其中Y是代表4位的年份,m代表月份,二位數(shù)字,若不足二位則在前面補(bǔ)零,如: "01" 至 "12" 。d 是幾日,二位數(shù)字,若不足二位則前面補(bǔ)零。 如: "01" 至 "31" 。 三、使用strftime函數(shù) 在編輯器中輸入echo strftime ("%hh%m %a %d %b" ,time());點(diǎn)擊回車就可以得知當(dāng)前的時間。
到此,以上就是小編對于“php_幾秒前”的問題就介紹到這了,希望介紹關(guān)于“php_幾秒前”的【3】點(diǎn)解答對大家有用。