我正在做一個測驗的應用程序,我想要一個功能,應根據開始時間和結束時間開始測驗。例如,測驗應該在上午9點開始,並應該停止,並在上午9點20分。 時間應由管理員 提供,並在結束時間後自動提交測驗。JavaScript中的代碼要求開始和結束時間爲特定的行爲
回答
使用JavaScript的日期()的getTime(),我們可以調用以毫秒爲單位的當前時間(這是因爲午夜的毫秒1970年1月1日數):
var curTime = new Date().getTime();
現在我們計算的金額時間以毫秒爲單位,我們希望超時:
- 20 * 60 * 1000 = 120000毫秒
- (二十分鐘)(以分鐘秒)(毫秒在第二)
你也可以把它改寫爲僅幾分鐘調整:
var min = 20, var timeLimit = min*60000;
然後,設置超時基於我們當前的時間和時限:
var timeout = curTime+timeLimit;
最後,我們使用這將比較當前時間和是否過去(大於)超時,我們稱之爲測驗的關閉功能,並可選擇顯示消息。
if(new Date().getTime() > timeout) {
alert("The quiz has expired");
}
完成的代碼看起來有點像這樣:
var curTime = new Date().getTime(), min = 20, var timeLimit = min*60000, timeout = curTime+timeLimit;
if(new Date().getTime() > timeout) {
alert("The quiz has expired");
}
從這裏你可以從中得出一些修改。假設你想在兩個確定的時間段之間設置可用性。您需要一種在開始和結束時間都是人類可讀的輸入方法。所以將日期和時間轉換爲毫秒是必要的。
要存儲日期,您需要一組下拉菜單,然後可以存儲所選日期的開始和結束時間。一個例子下拉將如下圖所示:
<select id="quizStartHours">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
...
<option value="12">12</option>
</select>
你將要作出如上的開始和結束時,分(增量爲5在這種情況下建議),月,日(按數量有限幾個月不等,28-31)。如果你只想在同一天不測試幾天,你可以將它簡化爲一個月&月,開始&完成 - 小時&分鐘。
一個項目,可以幫助您在日期下拉菜單是ComboDate,也可以輸入存入日期()格式爲我們與var curTime = new Date().getTime();
使用。
現在我們存儲用戶輸入。爲了將它存儲在服務器上,你必須進入ajax和服務器端的變量。我不太確定目前的工作方式,here是一個關於如何使用vbscript來幫助你的詢問,如果你想這樣做的話。如果這是一個問題,希望更有知識的人能夠提供幫助。
現在,我將繼續關注局部變量存儲以用於示例目的。下面是如何記錄從小時下拉列表中用戶輸入一個例子:
var e = document.getElementById("quizStartHours");
var strUser = e.options[e.selectedIndex].value;
爲了使用,我們必須將它存儲在毫秒爲單位將與curTime
工作的投入,date()
這樣做開箱: ()的行爲here。
現在,我們有我們的開始和結束日期,我們現在可以根據當前時間(curTime
)和我們的quizStartDate
& quizEndDate
變量檢查可用性:
var quizAvaliable = quizEndDate > curTime && curTime > quizStartDate;
最終代碼會是這個樣子:
// on quiz listing & opening check for curTime
var curTime = new Date().getTime(), quizAvaliable = quizEndDate > curTime && curTime > quizStartDate;
if(quizAvaliable) {
alert("The quiz is open");
//allow access to quiz itself (menu linking, page publicity)
}
else if(curTime > quizEndDate) {
alert("The quiz has expired");
//save then close quiz, in that order
}
else {
alert("The quiz has not begun");
}
希望這有助於搞清楚如何做到這一切。在這裏,我主要關注過程的單獨步驟以及如何執行每個步驟。但是,這是客戶端,爲了安全性,您可能想要去服務器端,這是什麼Ajax(異步JavaScript和XML)編碼。
祝你好運!
如果你想了解更多,如果你還沒有,應該查找任何粗體的項目。
謝謝你Leviscus Tempris在這麼詳細的解釋,但我是新來的JavaScript我有副本粘貼你的代碼,但我沒有得到任何結果。 –
- 1. 代碼開始在特定的時間內結束
- 2. StreamWriter:在特定的行號碼上開始和結束
- 3. 確定當天的開始和結束時間(UTC)(JAVASCRIPT)
- 4. 如何選擇結束時間爲第二天的開始時間和結束時間之間的記錄
- 5. 將時間列拆分爲開始時間/結束時間列
- 6. 驗證日期,時間開始和時間用javascript結束
- 7. 開始時間和結束時間之間的倒數時間
- 8. Android的開始日曆意圖的開始和結束時間
- 9. JMeter調度程序中的開始時間和結束時間
- 10. 從創建開始和結束時間
- 11. 開始和結束一段時間
- 12. Modelsim模擬開始和結束時間
- 13. 包開始和結束時間
- 14. 獲取特定月份和年份的開始和結束時間戳php
- 15. 如何獲得的開始時間和結束時間爲每個狀態
- 16. 檢查重疊的時間間隔開始和結束時間
- 17. 獲取的開始時間和結束時間
- 18. 獲取視頻的開始時間和結束時間
- 19. 匹配時間的開始和結束時間
- 20. 生成與特定的開始和結束日期時間序列
- 21. 在列中查找開始時間和結束時間
- 22. vim中的開始和結束括號之間的複製行
- 23. NSDate格式的開始和結束時間以小時爲單位
- 24. 如何將事件開始時間和結束時間與其他事件的開始時間和結束時間進行比較
- 25. PHP獲取52周開始/結束日期爲特定年份
- 26. 觸摸開始和觸摸結束之間的時間
- 27. ASP.NET比較自定義驗證器的結束時間和開始時間
- 28. Javascript實時倒計時(從開始到結束時間計數)
- 29. 設置開始和結束日期爲今天結束與PHP
- 30. 爲什麼我的async.waterfall JavaScript時序代碼沒有結束?
我不知道JavaScript的all.i已完成我的項目使用(PHP和MySQL)。唯一剩下的就是倒數計時器。管理員應該上傳測驗的開始時間和結束時間,即開始(2015/09/30 16:00:00)結束(2015/09/30 16:30:00),時間過期後應自動提交測驗。我檢查了這不能在PHP中實現,我不知道JavaScript。 –