JavaScript獲取服務(wù)器端時(shí)間的方法
用js做時(shí)間校正,獲取本機(jī)時(shí)間,是存在bug的。
使用js也可獲取到服務(wù)器時(shí)間,原理是使用 ajax請(qǐng)求,返回的頭部信息就含有服務(wù)器端的時(shí)間信息,獲取到就可以了。以下:
1、依賴jQuery
代碼:
function getServerDate(){ return new Date($.ajax({async: false}).getResponseHeader("Date")); }
以上函數(shù)返回的就是一個(gè)Date對(duì)象,注意在使用ajax時(shí)必須同步,要不然無(wú)法返回時(shí)間日期。
無(wú)需填寫(xiě)請(qǐng)求鏈接;
如果服務(wù)器時(shí)間和本地時(shí)間有時(shí)差,需要做校正。
2、原生
代碼:
function getServerDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ // ie xhr = new ActiveObject("Microsoft") } xhr.open("GET","/",false)//false不可變 xhr.send(null); var date = xhr.getResponseHeader("Date"); return new Date(date); }
同樣返回的是一個(gè)Date對(duì)象,xhr.open()必須使用同步;
無(wú)需填寫(xiě)請(qǐng)求鏈接;open,send,和getResponseHeader 必須按序編寫(xiě)。
如需使用異步請(qǐng)求,可監(jiān)聽(tīng)onreadystatechange狀態(tài)來(lái)做不同的操作。
代碼如下:
function getServerDate(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new window.XMLHttpRequest(); }else{ // ie xhr = new ActiveObject("Microsoft") } xhr.open("GET","/",true); xhr.send(null); xhr.onreadystatechange=function(){ var time,date; if(xhr.readyState == 2){ time = xhr.getResponseHeader("Date"); date = new Date(time); console.log(date); } } }
使用異步不是很方便返回時(shí)間。
這里的readyState有四種狀態(tài),方便做不同處理:
0: 請(qǐng)求未初始化
1: 服務(wù)器連接已建立
2: 請(qǐng)求已接收
3: 請(qǐng)求處理中
4: 請(qǐng)求已完成,且響應(yīng)已就緒
失敗狀態(tài),status的值:
200: "OK"
404: 未找到頁(yè)面
以上所述是小編給大家介紹的JavaScript獲取服務(wù)器端時(shí)間的方法,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- javascript同步服務(wù)器時(shí)間和同步倒計(jì)時(shí)小技巧
- Javascript實(shí)現(xiàn)商品秒殺倒計(jì)時(shí)(時(shí)間與服務(wù)器時(shí)間同步)
- javascript實(shí)現(xiàn)獲取服務(wù)器時(shí)間
- jsp頁(yè)面獲取服務(wù)器時(shí)間的簡(jiǎn)單調(diào)用示例
- JSP獲取服務(wù)器時(shí)間以倒計(jì)時(shí)的形式在頁(yè)面顯示
- 利用js獲取服務(wù)器時(shí)間的兩個(gè)簡(jiǎn)單方法
- js獲取當(dāng)前時(shí)間(昨天、今天、明天)
- js實(shí)現(xiàn)倒計(jì)時(shí)及時(shí)間對(duì)象
- js友好的時(shí)間返回函數(shù)
- JavaScript獲取服務(wù)器時(shí)間的方法詳解
相關(guān)文章
JavaScript基礎(chǔ)之AJAX簡(jiǎn)單的小demo
這篇文章主要介紹了JavaScript基礎(chǔ)之AJAX簡(jiǎn)單的小demo ,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2017-01-01Javascript優(yōu)化技巧之短路表達(dá)式詳細(xì)介紹
這篇文章主要介紹了Javascript優(yōu)化技巧之短路表達(dá)式詳細(xì)介紹,本文講解了什么是短路表達(dá)式,并給出了一些示例,需要的朋友可以參考下2015-03-03學(xué)習(xí)JavaScript設(shè)計(jì)模式之策略模式
這篇文章主要為大家介紹了JavaScript設(shè)計(jì)模式中的策略模式,對(duì)JavaScript設(shè)計(jì)模式感興趣的小伙伴們可以參考一下2016-01-01JS中浮點(diǎn)數(shù)精度問(wèn)題的分析與解決方法
在js中我們有時(shí)會(huì)遇到計(jì)算,通過(guò)加減乘除處理某些業(yè)務(wù),那么這時(shí)候如果不做任何處理,就會(huì)出現(xiàn)如下典型的精度丟失問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于JS中浮點(diǎn)數(shù)精度問(wèn)題的分析與解決方法,需要的朋友可以參考下2022-04-04JavaScript 設(shè)計(jì)模式學(xué)習(xí) Factory
通過(guò)接口實(shí)現(xiàn)工廠,這是通過(guò)List方式顯示RSS 等實(shí)現(xiàn)代碼。2009-07-07webpack5處理圖片、圖標(biāo)字體、多媒體等靜態(tài)資源文件
在 webpack5 中內(nèi)置了 file-loader、url-loader、raw-loader, 可以直接通過(guò)配置實(shí)現(xiàn)常用功能,下面就來(lái)介紹一下webpack5處理圖片、圖標(biāo)字體、多媒體等靜態(tài)資源文件的實(shí)現(xiàn)方法,感興趣的可以了解一下2023-12-12JavaScript錯(cuò)誤處理和調(diào)試方法詳解
代碼審查是調(diào)試JavaScript的重要方法,因?yàn)樗试S多個(gè)開(kāi)發(fā)人員一起處理代碼庫(kù)并在開(kāi)發(fā)過(guò)程的早期發(fā)現(xiàn)錯(cuò)誤,這篇文章主要給大家介紹了關(guān)于JavaScript錯(cuò)誤處理和調(diào)試方法的相關(guān)資料,需要的朋友可以參考下2023-11-11JS實(shí)現(xiàn)數(shù)組去重及數(shù)組內(nèi)對(duì)象去重功能示例
這篇文章主要介紹了JS實(shí)現(xiàn)數(shù)組去重及數(shù)組內(nèi)對(duì)象去重功能,結(jié)合實(shí)例形式分析了ES5與ES6兩種版本針對(duì)數(shù)組去重的相關(guān)操作技巧,需要的朋友可以參考下2019-02-02