javascript實(shí)現(xiàn)獲取服務(wù)器時(shí)間
JS是在客戶端運(yùn)行的腳本,而不是運(yùn)行在服務(wù)器上,通常來說,通過JS獲取時(shí)間的時(shí)候獲取到的時(shí)間是訪客本地電腦上的時(shí)間,為了讓網(wǎng)頁上的時(shí)間不因訪客電腦差異而不同,我們有必要直接JS獲取服務(wù)器時(shí)間。
下面是完整的js獲取服務(wù)器時(shí)間代碼,是使用javascript獲取服務(wù)器時(shí)間的完整實(shí)例,js動(dòng)態(tài)刷新服務(wù)器時(shí)間。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX獲取服務(wù)器時(shí)間</title>
<script type="text/javascript">
/*
* ajax 函數(shù),處理 ajax 請求
* @param function callback 回調(diào)函數(shù)
* @因?yàn)橐头?wù)器交互,所以必須在服務(wù)器環(huán)境運(yùn)行,不能在硬盤上直接打開
*/
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,但必須是同一個(gè)站點(diǎn)的鏈接,并且文件存在
ajaxObject.open('get',location.href);
ajaxObject.send(null);
ajaxObject.onreadystatechange=function(){
if(ajaxObject.readyState==4){
if(ajaxObject.status==200){
callback(ajaxObject);
}
}
};
}
/*
* 獲取時(shí)間并動(dòng)態(tài)刷新
*/
function getTime(){
ajax(
function(ao){
//只需要AJAX一次,將服務(wù)器時(shí)間獲取后以毫米為單位保存到一個(gè)變量中
_timestamp=Date.parse(ao.getResponseHeader('Date'));
_timestamp=_timestamp.toString().match(/^\d$/)?_timestamp:new Date().getTime();
//設(shè)置定時(shí)器每過一秒動(dòng)態(tài)刷新一次時(shí)間
setInterval(
function(){
//這里可以自定義時(shí)間顯示格式
document.getElementById('_timer').innerHTML=new Date(_timestamp).toLocaleString();
_timestamp+=1000;
},
1000
);
}
);
}
window.onload=getTime;
</script>
</head>
<body>
<div id="_timer">正在獲取服務(wù)器時(shí)間……</div>
</body>
</html>
思路分析:
服務(wù)器端時(shí)間這個(gè)概念很模糊。因?yàn)榉?wù)器端畢竟可能不是由一臺機(jī)器組成的。最簡單的情況,也分web服務(wù)器和db服務(wù)器。你說的究竟是哪一種
如果是web服務(wù)器。
那么直接在java或者.net那頭new Date()就ok了
不要在網(wǎng)頁中的<script>里面new Date,那個(gè)只是客戶端時(shí)間
如果是db服務(wù)器。
需要連接到數(shù)據(jù)庫,通過sql來取得。比如oracle的就是select sysdate from dual。
示例:
如果js要取得這樣的服務(wù)器端時(shí)間,方法有很多。思路大體差不多。
1.
<script type="text/javascript">
var date = <%=date(剛才在服務(wù)器端取得的時(shí)間,內(nèi)容取得方法上面分析過了)%>
</script>
2.<script type="text/javascript" src=".../ScriptServlet"></script>
將Servlet的返回流中寫入一個(gè)js文件,使其當(dāng)中的var nowDate = 服務(wù)器端時(shí)間
3.ajax,這個(gè)就不說了,網(wǎng)上一大堆
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
- javascript同步服務(wù)器時(shí)間和同步倒計(jì)時(shí)小技巧
- Javascript實(shí)現(xiàn)商品秒殺倒計(jì)時(shí)(時(shí)間與服務(wù)器時(shí)間同步)
- jsp頁面獲取服務(wù)器時(shí)間的簡單調(diào)用示例
- JSP獲取服務(wù)器時(shí)間以倒計(jì)時(shí)的形式在頁面顯示
- 利用js獲取服務(wù)器時(shí)間的兩個(gè)簡單方法
- JavaScript獲取服務(wù)器端時(shí)間的方法
- js獲取當(dāng)前時(shí)間(昨天、今天、明天)
- js實(shí)現(xiàn)倒計(jì)時(shí)及時(shí)間對象
- js友好的時(shí)間返回函數(shù)
- JavaScript獲取服務(wù)器時(shí)間的方法詳解
相關(guān)文章
Asp.Net alert彈出提示信息的幾種方法總結(jié)
本篇文章主要是對Asp.Net alert彈出提示信息的幾種方法進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01
PixiJS學(xué)習(xí)之Sprite類的使用詳解
Sprite 直譯為 “精靈”,是游戲開發(fā)中常見的術(shù)語,就是將一個(gè)角色的多個(gè)動(dòng)作放到一個(gè)圖片里,通過裁剪局部區(qū)域得到當(dāng)前的角色狀態(tài)圖。本文主要介紹了PixiJS中Sprite類的使用,需要的可以參考一下2023-02-02
js實(shí)現(xiàn)微信/QQ直接跳轉(zhuǎn)到支付寶APP打開口令領(lǐng)紅包功能
最近支付寶的領(lǐng)紅包可真是刷爆了各個(gè)微信群啊,滿群都是支付寶口令,可是這樣推廣很麻煩,下面小編給大家?guī)砹薺s實(shí)現(xiàn)微信/QQ直接跳轉(zhuǎn)到支付寶APP打開口令領(lǐng)紅包功能,需要的朋友參考下2018-01-01
js中使用replace方法完成某個(gè)字符的轉(zhuǎn)換
這篇文章主要介紹了js中使用replace方法完成某個(gè)字符的轉(zhuǎn)換,比較實(shí)用,需要的朋友可以參考下2014-08-08
javascript實(shí)現(xiàn)無縫上下滾動(dòng)特效
這篇文章主要介紹了javascript實(shí)現(xiàn)無縫上下滾動(dòng)特效的相關(guān)資料,需要的朋友可以參考下2015-12-12
淺析JavaScript中的平穩(wěn)退化(graceful degradation)
所謂平穩(wěn)退化,就是指可以讓訪問者在瀏覽器不支持javascript或者禁用了JavaScript的時(shí)候依舊可以順利的瀏覽你的網(wǎng)頁,下文給大家簡單介紹了js中的平穩(wěn)退化,感興趣的朋友一起看看吧2017-07-07
js實(shí)現(xiàn)倒計(jì)時(shí)(距離結(jié)束還有)示例代碼
本文與大家分享個(gè)js實(shí)現(xiàn)倒計(jì)時(shí)的代碼,主要實(shí)現(xiàn)功能距離結(jié)束還有多少時(shí)間,感興趣的朋友可以參考下,希望對大家學(xué)習(xí)js有所幫助2013-07-07
JS定時(shí)器使用,定時(shí)定點(diǎn),固定時(shí)刻,循環(huán)執(zhí)行詳解
下面小編就為大家?guī)硪黄狫S定時(shí)器使用,定時(shí)定點(diǎn),固定時(shí)刻,循環(huán)執(zhí)行詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05

