ホームページ > 記事 > ウェブフロントエンド > サーバー time_javascript スキルを取得するための Javascript 実装
JS はサーバー上ではなくクライアント上で実行されるスクリプトです。一般に、JS を通じて時刻を取得する場合、Web ページ上の時刻を避けるために、取得される時刻は訪問者のローカル コンピューター上の時刻になります。コンピュータによっては、JS を介してサーバー時刻を直接取得する必要があります。
以下は、サーバー時間を取得するための完全な js コードです。これは、javascript を使用してサーバー時間を動的に更新する完全な例です。
<!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>
思考分析:
サーバー側の時間の概念は非常に曖昧です。結局のところ、サーバー側は 1 台のマシンで構成されているわけではないからです。最も単純なケースでは、Web サーバーと DB サーバーにも分けられます。どれについて話しているのですか
Webサーバーの場合。
次に、java または .net で new Date() を直接使用します
Web ページの 3f1c4e4b6b16bbbd69b2ee476dc4f83a には新しい日付を追加しないでください。これは単なるクライアント時間です
データベースサーバーの場合。
データベースに接続し、SQL を通じて取得する必要があります。たとえば、Oracle の select sysdate from Dual です。
例:
js がそのようなサーバーサイドの時間を取得したい場合、多くの方法があります。考え方はほぼ同じです。
1.
055d9d5ff16d85d950bd3dee4f983fb7
var date = 13cc6fe3f2aabd10efb9182b1d0d4312
2cacc6d41bbb37262a98f745aa00fbf0
2.bba8f8188f9e1e1551427ba38711a9422cacc6d41bbb37262a98f745aa00fbf0
var nowDate = サーバー側の時間
3.ajax、これについては説明しません。インターネット上にたくさんあります
以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。