JS是在客戶端運行的腳本,而不是運行在服務器上,通常來說,通過JS獲取時間的時候獲取到的時間是訪客本地電腦上的時間,為了讓網頁上的時間不因訪客電腦差異而不同,我們有必要直接JS獲取服務器時間。
下面是完整的js獲取服務器時間代碼,是使用javascript獲取服務器時間的完整實例,js動態刷新服務器時間。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>AJAX獲取服務器時間</title> <script type="text/javascript"> /* * ajax 函數,處理 ajax 請求 * @param function callback 回調函數 * @因為要和服務器交互,所以必須在服務器環境運行,不能在硬盤上直接打開 */ function ajax(callback){ if(typeof callback!='function') return; var ajaxObject; try{ ajaxObject=new XMLHttpRequest(); }catch(e){ try{ ajaxObject=new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){ } } if(!ajaxObject) return; if(ajaxObject.overrideMimeType){ ajaxObject.overrideMimeType('text/html'); } //location.href可以換成其他url,但必須是同一個站點的鏈接,並且文件存在 ajaxObject.open('get',location.href); ajaxObject.send(null); ajaxObject.onreadystatechange=function(){ if(ajaxObject.readyState==4){ if(ajaxObject.status==200){ callback(ajaxObject); } } }; } /* * 獲取時間並動態刷新 */ function getTime(){ ajax( function(ao){ //只需要AJAX一次,將服務器時間獲取後以毫米為單位保存到一個變量中 _timestamp=Date.parse(ao.getResponseHeader('Date')); _timestamp=_timestamp.toString().match(/^d$/)?_timestamp:new Date().getTime(); //設置定時器每過一秒動態刷新一次時間 setInterval( function(){ //這裡可以自定義時間顯示格式 document.getElementById('_timer').innerHTML=new Date(_timestamp).toLocaleString(); _timestamp+=1000; }, 1000 ); } ); } window.onload=getTime; </script> </head> <body> <div id="_timer">正在獲取服務器時間……</div> </body> </html>思路分析:
服務器端時間這個概念很模糊。因為服務器端畢竟可能不是由一台機器組成的。最簡單的情況,也分web服務器和db服務器。你說的究竟是哪一種
如果是web服務器。
那麼直接在java或者.net那頭new Date()就ok了
不要在網頁中的
2.
將Servlet的返回流中寫入一個js文件,使其當中的var nowDate = 服務器端時間
3.ajax,這個就不說了,網上一大堆
以上所述就是本文的全部內容了,希望大家能夠喜歡。