我真的不明白這一點使用輸入那裏,你可以只需顯示在一個範圍內,當表單被提交時,需要花費時間並將其與其他數據一起發送。不管怎麼說,這應該爲你工作:
$(document).ready(function() {
var time_start = new Date();
setInterval(function() {
var time_end = new Date();
var time_diff = (time_end - time_start);
// hours
var hours = Math.floor(time_diff/1000/60/60);
// minutes
time_diff = time_diff - hours * 1000 * 60 * 60;
var minutes = Math.floor(time_diff/1000/60);
// seconds
time_diff = time_diff - minutes * 1000 * 60;
var seconds = Math.floor(time_diff/1000);
renderTime(hours, minutes, seconds);
}, 1000);
});
function renderTime (hrs, min, sec) {
var str = convertTime(hrs) + ":" + convertTime(min) + ":" + convertTime(sec);
$("#timeTaken").val(str);
}
function convertTime (val) {
return val < 10 ? "0" + val : val;
}
這是怎麼回事是我們擁有的time_start
不改變,我們有一個被觸發每秒setInterval
功能。在那裏我們創建了new Date
對象,並從中減去一個靜態對象,它以毫秒爲單位返回時間差。我們做奇怪的Math.floor
ing和subtracting,所以我們可以有小時,分鐘和秒作爲一個整數(而不是浮動)。然後我們使用渲染函數來顯示所需元素的時間。
爲什麼我認爲這是一個更好的解決方案,其他人是,如果你想處理用戶的頁面刷新,你只需要將一個變量保存到cookie或其他東西,它將工作,無論頁面刷新。
處理頁面刷新會是什麼樣子(用保存2個小時的cookie):
function updateTimeCookie() {
var time_now = new Date()
var value = JSON.stringify(time_now);
var expires = time_now.setTime(time_now.getTime() + 7200);
$.cookie("timeStart", value, { expires: expires });
};
// to get Date object from cookie: new Date(JSON.parse($.cookie("timeStart")))
要使用$.cookie()
首先必須包括jQuery的餅乾插件。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
工作小提琴無餅乾:https://jsfiddle.net/qc3axmf4/1/
工作撥弄着餅乾:https://jsfiddle.net/ta8bnzs0/2/
不錯!你可以用snippet或jsFiddle書寫它嗎? – Jonjie
@Jonjie你去吧 –
哇!真棒:) – Jonjie