2012-11-08 40 views
0

小提琴:http://jsfiddle.net/bnsex/1/jQuery - 使用.getHours()方法將1-24小時更改爲1-12小時?

我想用2小時時鐘此代碼...

$(document).ready(function() { 

setInterval(function() { 
var hours = new Date().getHours(); 
$(".hours, .hour").html((hours < 10 ? "0" : "") + hours); 
}, 1000); 

}); ​ 

你的幫助是非常讚賞:d

+0

一切都在你的榜樣。 – Andreas

+0

我將不得不使用If語句,對嗎? –

+0

like if(hours> 12){ hours - = 12; else if(hours === 0){ hours = 12; } ...我幾乎沒有學習jQuery。我需要一些幫助哈哈 –

回答

0

試試這個:

hours = (hours < 12 ? hours : hours - 12).toString().replace(/^\d{1}$/, '0$&'); 

編輯:根據瓦肯的答案,它可能會更短:

hours = (hours % 12).toString().replace(/^\d{1}$/, '0$&'); 
+0

這比模數方法效率低得多。 – Vulcan

+0

對,對我而言,作爲jquery的初學者是相當困惑的...... –

+0

@Vulcan:我剛剛在你的方法中加入了一個修訂。 '替換'是爲了避免另一種情況。 @RickyCortes:我會這樣寫,但是你可以自由地在這裏寫點東西並推出你自己的解決方案。 – elclanrs

1

您可以使用模數%運算符來實現這一點,該運算符可以找到除法運算的其餘部分。

例如,11 % 1223 % 12都等於11,就像一個12小時的時鐘將描繪。你需要

var hours = new Date().getHours() % 12; 
if (hours == 0) { 
    hours += 12; 
} 

http://jsfiddle.net/ph7Vf/

+0

完美的作品!謝謝。 –

+1

很高興幫助!不要忘記將答案標記爲已接受。 – Vulcan

+0

其實現在有一個問題......現在它的12:08太平洋時間......你的代碼實際上現在顯示的是00:08。 :/ –

相關問題