2012-06-05 62 views
0

我想在jsp文件上顯示時鐘,從服務器獲取時間並且採用05 Jun, 2012 12:48:23 PM格式我希望同時更新時間而不是花費客戶端時間。在jsp上顯示時鐘

我的確嘗試過timer.js,jtimer和其他一些API。我可以通過分割事物並自己編寫整個時鐘邏輯來實現,但想要重用已經開發的API。

+0

in'timer.js' when I was doing'Date.parse(「05 Jun,2012 12:48:23 PM」)'它拋出錯誤 – Varun

回答

1

我使用這個多年:

<script type="text/javascript"> 

// Current Server Time script (SSI or PHP)- By JavaScriptKit.com (http://www.javascriptkit.com) 
// For this and over 400+ free scripts, visit JavaScript Kit- http://www.javascriptkit.com/ 
// This notice must stay intact for use. 

//Depending on whether your page supports SSI (.shtml) or PHP (.php), UNCOMMENT the line below your page supports and COMMENT the one it does not: 
//Default is that SSI method is uncommented, and PHP is commented: 

var currenttime = '<!--#config timefmt="%B %d, %Y %H:%M:%S"--><!--#echo var="DATE_LOCAL" -->' //SSI method of getting server date 
//var currenttime = '<? print date("F d, Y H:i:s", time())?>' //PHP method of getting server date 

///////////Stop editting here///////////////////////////////// 

var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December") 
var serverdate=new Date(currenttime) 

function padlength(what){ 
var output=(what.toString().length==1)? "0"+what : what 
return output 
} 

function displaytime(){ 
serverdate.setSeconds(serverdate.getSeconds()+1) 
var datestring=montharray[serverdate.getMonth()]+" "+padlength(serverdate.getDate())+", "+serverdate.getFullYear() 
var timestring=padlength(serverdate.getHours())+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds()) 
document.getElementById("servertime").innerHTML=datestring+" "+timestring 
} 

window.onload=function(){ 
setInterval("displaytime()", 1000) 
} 

</script> 

<p><b>Current Server Time:</b> <span id="servertime"></span></p> 

<p style="font: normal 11px Arial">This free script provided by<br /> 
<a href="http://www.javascriptkit.com">JavaScript Kit</a></p> 

更多信息請參見this

+0

嘗試http://jsfiddle.net/8k3J3/沒有工作 – Varun

+0

你需要服務器端代碼來驅動,你怎麼能通過jsfiddle運行它? – pylover

+0

我預計服務端日期已經在我身邊,並且保留在腳本中 – Varun

0

理想情況下,我會使用服務器端的Java日期格式化程序來格式化日期並將其添加到JSP模型中。不過,要回答這個問題,你可以使用JavaScript日期類

var date = new Date('05 Jun, 2012 12:48:23 PM'); 
date.getMonth() 

有,你可以在這裏找到其他的方法 - http://www.w3schools.com/jsref/jsref_obj_date.asp

PS:我的第一份工作迅速解決這個問題之前,谷歌, 。

+0

你試過了嗎?它向我拋出了一個錯誤。此外,基本的JavaScript不允許我將它顯示爲時鐘。需要一些東西來顯示它作爲時鐘 – Varun

+0

是的。它至少在FF(螢火蟲控制檯)中工作。 – CoderTR

1

您可以使用現有的jQuery插件,時鐘,讓你明確設置的初始時間。

例如this plugin看起來不錯並且使用簡單(sample code),並允許您設置時間戳,請參閱「帶有自定義時間戳的時鐘」。

所以只需將服務器時間作爲自定義時間戳記傳遞完畢即可。