標籤:doc time() ble rip 業務 服務 部分 沒有 second
js擷取目前時間戳的方法-JavaScript 擷取當前毫秒時間戳記有以下三種方法:
var timestamp =Date.parse(new Date()); 結果:1280977330000 //不推薦; 毫秒改成了000顯示
var timestamp =(new Date()).valueOf(); 結果:1280977330748 //推薦;
var timestamp=new Date().getTime(); 結果:1280977330748 //推薦;
注意 在js中這三種方法擷取到的是用戶端的時間
擷取伺服器時間:
Javascript是運行在用戶端的指令碼,我們一般都用new Date()來擷取目前時間,但是得到的是用戶端的時間,用戶端時間是隨意更改的,如果要做一個產品發布倒計時的話,用戶端時間一改,就要鬧笑話了。業務中需要用到伺服器時間的情境還有很多,那麼僅僅通過js怎麼拿到伺服器時間呢?事實上,只需要一個ajax請求就搞定,通過讀取XMLHttpRequest對象的回應標頭裡面的時間戳記得到當前伺服器時間!
通過ajax向伺服器發送請求,當伺服器收到請求後即可讀取回應標頭的時間戳記了,不管請求成功或失敗,都可以拿到時間戳記。怎麼判斷伺服器收到請求了呢?當ajax請求發送之後,XMLHttpRequest有5中狀態變化:
| XMLHttpRequest.readyState值 |
表示的意思 |
| 0 |
未初始化,已經建立一個XMLHttpRequest對象,但是還沒有初始化 |
| 1 |
未發送,代碼已經調用了xmlhttprequest open()方法並且xmlhttprequest已經準備好把一個請求發送到伺服器 |
| 2 |
已發送,已經通過send()方法把一個請求發送到伺服器端,但是還沒有收到一個響應,可以讀取回應標頭資訊了 |
| 3 |
正在接收,已經接收到http回應標頭部資訊,但是訊息體部分還沒有完全接收完畢 |
| 4 |
已載入,響應已經被完全接收 |
當XMLHttpRequest.readyState值為2時就可以讀取回應標頭拿到我們要的時間戳記了。代碼如下:
<p id="time"></p>
<script>
ajax()
function ajax(option){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new window.XMLHttpRequest();
}else{ // ie
xhr = new ActiveObject("Microsoft")
}
// 通過get的方式請求當前檔案
xhr.open("get","/");
xhr.send(null);
// 監聽請求狀態變化
xhr.onreadystatechange = function(){
var time = null,
curDate = null;
if(xhr.readyState===2){
// 擷取回應標頭裡的時間戳記
time = xhr.getResponseHeader("Date");
console.log(xhr.getAllResponseHeaders())
curDate = new Date(time);
document.getElementById("time").innerHTML = "伺服器時間是:"+curDate.getFullYear()+"-"+(curDate.getMonth()+1)+"-"+curDate.getDate()+" "+curDate.getHours()+":"+curDate.getMinutes()+":"+curDate.getSeconds();
}
}
}
</script>
轉載:http://www.cnblogs.com/wangmeijian/p/4442830.html
Javascript擷取伺服器時間