トップ回答者
ログインした地域ごとの現地時間の取得方法

質問
回答
-
こんなWEBAPIはいかがですか。(使ってみた事は無いのですが、面白そうです)
Time Zone and Local Time
http://www.earthtools.org/webservices.htm#timezone
日本語で、使用方法の案内をしているページ
http://markun.cs.shinshu-u.ac.jp/learn/WebAPI/api6/time.html
chonmage- 回答としてマーク 高橋 春樹 2009年8月3日 8:42
-
私なら、という回答ですが、
ASP.NET側からブラウザに対してはUTC値を送りJavaScript側で、Date.toLocaleString を使用して文字列化します。
質問に対する直接的な回答としては、Date.getTimezoneOffset を使用してブラウザからASP.NETへ事前に時差情報を送り込み、それを使用すればできそうかなと。- 回答としてマーク 高橋 春樹 2009年8月3日 8:42
-
> 帳票が出力された時間を日本時間でサーバ上に持っているのですが、
> それを、現地時間に変換したいです。サーバーに持っている日本時間をクライアントの現地時間に変換するのはちょっと難しそうです。
その代わりに、帳票の出力要求のタイミングで JavaScript を使ってクライアントの PC から日時を
取得してサーバーに POST し、それをサーバーで処理することなら簡単にできそうです。例えば下記のような感じですが、いかがですか?
<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
Label1.Text = HiddenField1.Value;
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
<!--
function SetLocalDateTimeNow() {
var now = new Date();
form1.HiddenField1.value = now.getFullYear() + "年" +
(now.getMonth() + 1) + "月" + now.getDate() + "日" +
now.getHours() + "時" + now.getMinutes() + "分" + now.getSeconds() + "秒";
}
//-->
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="帳票に出力" OnClientClick="SetLocalDateTimeNow();" />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
<input type="hidden" name="HiddenField1" id="HiddenField1" value="" runat="server" />
</div>
</form>
</body>
</html>- 回答としてマーク 高橋 春樹 2009年8月3日 8:42
すべての返信
-
こんなWEBAPIはいかがですか。(使ってみた事は無いのですが、面白そうです)
Time Zone and Local Time
http://www.earthtools.org/webservices.htm#timezone
日本語で、使用方法の案内をしているページ
http://markun.cs.shinshu-u.ac.jp/learn/WebAPI/api6/time.html
chonmage- 回答としてマーク 高橋 春樹 2009年8月3日 8:42
-
私なら、という回答ですが、
ASP.NET側からブラウザに対してはUTC値を送りJavaScript側で、Date.toLocaleString を使用して文字列化します。
質問に対する直接的な回答としては、Date.getTimezoneOffset を使用してブラウザからASP.NETへ事前に時差情報を送り込み、それを使用すればできそうかなと。- 回答としてマーク 高橋 春樹 2009年8月3日 8:42
-
> 帳票が出力された時間を日本時間でサーバ上に持っているのですが、
> それを、現地時間に変換したいです。サーバーに持っている日本時間をクライアントの現地時間に変換するのはちょっと難しそうです。
その代わりに、帳票の出力要求のタイミングで JavaScript を使ってクライアントの PC から日時を
取得してサーバーに POST し、それをサーバーで処理することなら簡単にできそうです。例えば下記のような感じですが、いかがですか?
<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
Label1.Text = HiddenField1.Value;
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
<!--
function SetLocalDateTimeNow() {
var now = new Date();
form1.HiddenField1.value = now.getFullYear() + "年" +
(now.getMonth() + 1) + "月" + now.getDate() + "日" +
now.getHours() + "時" + now.getMinutes() + "分" + now.getSeconds() + "秒";
}
//-->
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="帳票に出力" OnClientClick="SetLocalDateTimeNow();" />
<br />
<asp:Label ID="Label1" runat="server"></asp:Label>
<input type="hidden" name="HiddenField1" id="HiddenField1" value="" runat="server" />
</div>
</form>
</body>
</html>- 回答としてマーク 高橋 春樹 2009年8月3日 8:42
-
こんにちは、フォーラムオペレーターの高橋春樹です。
chonmageさん、佐祐理さん、SurferOnWwwさん
こんにちは、ご投稿有難うございました。buruburukoinuさん、初めまして。
MSDNフォーラムのご利用ありがとうございます。皆さんから色々なアドバイスを頂いたと思うのですが、試して頂けましたでしょうか?
chonmageさん、佐祐理さん、SurferOnWwwさんから頂いた情報が、有用な情報だと思いましたので、
勝手ながら、回答マークを付けさせてもらいました。
問題が解決していない場合、もしくは不適切と思いましたら、回答マークを削除することも可能です。今後ともMSDNフォーラムをよろしくお願いします(^-^)
マイクロソフト株式会社 フォーラム オペレータ 高橋春樹