ホームページ > ウェブフロントエンド > jsチュートリアル > サーバー側の時間を取得するための JavaScript メソッド

サーバー側の時間を取得するための JavaScript メソッド

高洛峰
リリース: 2016-12-03 15:14:17
オリジナル
1668 人が閲覧しました

時刻修正と現地時刻の取得にjsを使用する際にバグがあります。

js を使用してサーバー時刻を取得することもできます。原則として、返されるヘッダー情報にはサーバー側の時刻情報が含まれています。以下:

1. jQuery

コードに依存します:

function getServerDate(){
return new Date($.ajax({async: false}).getResponseHeader("Date"));
}
ログイン後にコピー

上記の関数は、ajax を使用する場合は Date オブジェクトを返す必要があります。そうでない場合は、時刻と日付を返すことができません。

リクエストリンクを記入する必要はありません。

サーバー時間と現地時間の間に時差がある場合は、修正する必要があります。

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);
}
ログイン後にコピー

は、Date オブジェクトも返します。xhr.open() は、リクエスト リンクを入力する必要はなく、送信し、getResponseHeader を実行する必要があります。順番に書かれています。

非同期リクエストを使用する必要がある場合は、onreadystatechange ステータスをリッスンしてさまざまな操作を実行できます。

コードは次のとおりです:

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);
}
}
}
ログイン後にコピー

非同期の戻り時間を使用するのはあまり便利ではありません。

ここでのreadyStateには、さまざまな処理を容易にするための4つの状態があります:

0: リクエストは初期化されていません

1: サーバー接続が確立されました

2: リクエストが受信されました

3: リクエストが処理中です

4: リクエストは完了し、応答の準備ができています

失敗ステータス、ステータス値:

200: "OK"

404: ページが見つかりません

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート