我正在使用下面的腳本,我正在嘗試做的是設置一個自定義時間到腳本,併爲它自動更新,而無需每次重新設置時間。 (我只想當設定的時間,並希望我的腳本來跟蹤時間和顯示它)基於自定義時間的Javascript時鐘
當我運行該腳本,它顯示:楠:楠:NaN的AM
我的代碼如下:
<div id="js_clock"> display clock here </div>
<script language="javascript">
function js_clock(clock_time)
{
var clock_hours = clock_time.getHours();
var clock_minutes = clock_time.getMinutes();
var clock_seconds = clock_time.getSeconds();
var clock_suffix = "AM";
if (clock_hours > 11){
clock_suffix = "PM";
clock_hours = clock_hours - 12;
}
if (clock_hours == 0){
clock_hours = 12;
}
if (clock_hours < 10){
clock_hours = "0" + clock_hours;
}
if (clock_minutes < 10){
clock_minutes = "0" + clock_minutes;
}
if (clock_seconds < 10){
clock_seconds = "0" + clock_seconds;
}
var clock_div = document.getElementById('js_clock');
clock_div.innerHTML = clock_hours + ":" + clock_minutes + ":" + clock_seconds + " " + clock_suffix;
setTimeout("js_clock()", 1000);
}
var serverTime = new Date("09:20:50");
js_clock(serverTime);
</script>
你[不要傳字符串'的setTimeout()'](http://stackoverflow.com/questions/6081560/is-there-ever-a-good-reason-to-pass-a -string到的setTimeout);它是[邪惡,像'eval()'](http://stackoverflow.com/a/6232610/82548)。 – 2012-08-05 23:35:38
好悲傷,「eval是邪惡的」事物需要休息。當然這不是最佳的,但它不是邪惡的。更好地評論爲什麼這6個函數調用是爲了取代none:'new Date(+ clock_time + 1000)' – RobG 2012-08-06 01:43:25
@RobG:我的鏈接文本用來解釋我所鏈接的答案,而不是深深地相信'eval()===邪惡'的概念。我鏈接到其他頁面的唯一原因是支持我的請求,而不是將字符串傳遞給'setTimeout'。不過,也許我應該更好地選擇我的話。 – 2012-08-07 14:59:54