javascriptでサーバの時間を取得するには?


現在、入力フォームで生年月日を入力してもらい同時に自動的に年齢計算をする、ということをjavascriptでしています。
ただ、時間の取得はクライアントに依存しております。
そのため、クライアントの時間設定(年月日)が大幅に狂っていると、年齢計算が実際の年齢と合わなくなってしまいます。
できればこれを避けたいのですが、javascriptでサーバから時間を取得する方法がわかりません。
そもそも可能なのでしょうか?
調べたところ、SSIで取得したものをjavascriptに取り込む、という方法があるようなのですが、サーバがSSIを許していない場合は他に手はあるのでしょうか?
(現在、当サーバがSSIを許しているかどうかは確認ができていません)

ちなみに、cgiとかにプログラムを変更するということも一案ではありますが、諸事情があり、可能な限りjavascriptで対応したいと考えております。

お恥ずかしながら、システムやプログラムなどに精通しているわけではありませんので、おかしなことを書いているかもしれませんが、そのあたりご了承ください。
ぜひともアドバイスください。
宜しくお願い申し上げます。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

var getUTCDateByServer = function () {


 var r;
 return (r = new XMLHttpRequest)
     ? (r.open ('HEAD', '#', false), r.send (null), new Date (r.getResponseHeader ('Date'))
     : null;
};
    • good
    • 1
この回答へのお礼

サンプルスクリプトまで記載していただいてありがとうございます!!!
大変助かります。

早速、試させていただきます。

お礼が遅くなり申し訳ございませんでした。ありがとうございました!

お礼日時:2011/05/02 10:06

このあたりのサービスを利用すれば可能です。


http://www2.nict.go.jp/w/w114/tsp/JST/JST5.html

通信環境によって若干の誤差はでるでしょうが、javascriptでjasonpデータを取得できます。
詳しくい説明はこちらから
http://www2.nict.go.jp/w/w114/tsp/link/JST.html#11
    • good
    • 0
この回答へのお礼

ありがとうございます!
早速試してみます。
もし、わからないところがあったら、また質問させていただくかもしれません。
その際は宜しくお願い申し上げます。

いろいろ試行錯誤してみます。
ありがとうございました!

お礼日時:2011/04/28 11:19

レスポンスヘッダーのDate部分を使うのはいかがでしょうか。



参考URL:http://phpjavascriptroom.com/exp.php?f=include/a …特定のレスポンスヘッダを取得する
    • good
    • 0
この回答へのお礼

ありがとうございます!
これも、早速試してみます。
もし、わからないところがあったら、また質問させていただくかもしれません。
その際は宜しくお願い申し上げます。

いろいろ試行錯誤してみます。
ありがとうございました!

お礼日時:2011/04/28 11:21

JavaScriptはクライアントでのみ動くので


単体ではサーバの時間は取得できません
    • good
    • 0
この回答へのお礼

速やかなご回答ありがとうございました。
やはり、基本的にはそうですよね・・・。

他の方のご回答でチャレンジしてみます。
ありがとうございましたm(__)m

お礼日時:2011/04/28 11:23

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qサーバ時刻の取得

いつもお世話になっています。
クライアント側の時刻ではなく、サーバの時刻を画面に表示したいと考えています。

サーバ情報をどうやったら取れるのか教えてください。

Aベストアンサー

サーバー側の時刻はサーバー側からじゃないと取得できないのは想像つくと思います。
つまりタグやJavaScriptなどのクライアントサイドで動作する記述では不可能になります。

例えば「現在の時刻は 12:34:56 です」と表示したい場合、

SSIなら
<!--#config timefmt="%X"-->
現在の時刻は <!--#echo var="DATE_LOCAL"--> です

ASPなら
現在の日時は <%= Right("00" & Hour(Now),2) & Right("00" & Minute(Now),2) & Right("00" & Second(Now),2)%> です

などと記述する事が出来ます。

参考まで

Q[クライアントからサーバの時刻を取得する]

[クライアントからサーバの時刻を取得する]

社内LAN環境にてcgiアプリケーションを作成しています。
予約処理のようなものですが、クライアントとサーバの時刻に差が有ると問題が起こる場合が有ります。
タイトルのような文言で検索してみたら、いろいろ検索できたのですが
正しく理解できていないのでどうもうまく組み込めません。

参考URL:http://game.gr.jp/svmix/js/test5.htm

setServerTime.jsのURLを社内LAN上のサーバのローカルIPアドレスにしたのですが
それだけではサーバの時刻を正しく取得できませんでした。

dynamicLoad('http://game.・・・・・・・・・/getservernow.js')
       ↓
dynamicLoad('http://192.168.1.11/getservernow.js')
といいますか、どこのサーバの時刻かわからないのですがクライアントとは少し違う時刻を表示します。

どうしたら、サーバマシンの時刻を正しく取得できるのか
どなたかアドバイスいただけないでしょうか。

やりたいことは、LAN上の2台のマシンA、Bを使用して、B上のブラウザから
Aのマシンの時刻をBで知りたいのですが。。。

よろしくお願いいたします。

[クライアントからサーバの時刻を取得する]

社内LAN環境にてcgiアプリケーションを作成しています。
予約処理のようなものですが、クライアントとサーバの時刻に差が有ると問題が起こる場合が有ります。
タイトルのような文言で検索してみたら、いろいろ検索できたのですが
正しく理解できていないのでどうもうまく組み込めません。

参考URL:http://game.gr.jp/svmix/js/test5.htm

setServerTime.jsのURLを社内LAN上のサーバのローカルIPアドレスにしたのですが
それだけではサーバの時刻を正しく取得できませ...続きを読む

Aベストアンサー

こんばんわ。

上記の例では192.168.1.11(サーバ?)上の時刻を取得しているのではないでしょうか?
クライアントとは少し違う時刻...というのは単純にサーバとクライアントで時刻がずれているのだと思います。

上記のサイトの説明でもありますがJavaScriptの new Date()は、実行しているブラウザのPC時刻より取得しますが、CGIかなにかを使った場合は、サーバ側の時刻を取得できます。

B上のブラウザでAの時刻を知りたいのなら、A上に時刻を取得するCGIスクリプトを設置し、Bからスクリプト呼び出しすれば取得できると思います。

QJavaScriptde途中で、「exit」するには?

function kensaku(){
s_data = document.kaiin_form.input_name.value;

if(!s_data){ alert("キーワードを入れて下さい!"); }

if(s_data != dumy){ ...... }
for(i=st_no;i<=n;i++){
......省略.................;
.......省略................}
}

----------------------------------
3行目で表示されたアラートをOKで閉じても、4行目以下が実行されてしまいます。
3行目でexitするにはどうすれば良いでしょうか?

Aベストアンサー

>関数(kensaku())からは抜けられませんでした。
そうですね、勘違いしていました、f(^^;
すみません。
if(!s_data){
alert("キーワードを入れて下さい!");
return;
}
ですね。

Qhtml で 変数を定義できますか?

html(できればjava不使用)で変数に文字列をいれてつかう、またはそれに近いことはできないでしょうか?

例**************************
$color1="#000000"

<tr bgcolor=$color1>内容1<tr>
<tr bgcolor=$color1>内容2<tr>
****************************
みたいな感じです

Aベストアンサー

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:orika1951@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
.parson1:before{content:"田中";}
p.age1:after{content:"36歳";}
-->
</style>
</head>
<body>
<h1>サンプル</h1>
<p class="parson1">は男の子</p>
<p class="parson1 age1">の年齢は</p>
<p>私の彼氏は<span class="parson1">君だよ</p>
</body>
</html>

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<met...続きを読む

Q時間表示について....

教えてください。
ページ内に時間を表示させたいのですが、
サーバーの時間をそのまま取得して表示される方法はありますか?
※SSIは使えないサーバー、(CGI可)です。
表示される時間が、共通になるようにしたいのです!
(ユーザーのPCに既存されないように、共通の時間帯で表示させたい)

宜しくお願いいたします。

Aベストアンサー

java.util.Calendarクラスを用いればできます。

Calendar calendar = Calendar.getInstance();
//時
calendar.get(Calendar.HOUR);
//分
calendar.get(Calendar.MINUTE);
//秒
calendar.get(Calendar.SECOND);

でint型の値が返ってきます。
この値はサーバの現在時刻になっています。

Q