1

(マスターページに配置した)日時を表示したい。現在の文化に基づいて異なる言語で。

マスターのJavaScriptコード:

    <script type="text/javascript">
        var t;
        $(document).ready(function pageLoad() {
            setTimeout('SetTime()', 1000);
        });

        function SetTime() {
            var date = new Date();
            date.format = 'MM.DD.YYYY';
            $get('<%=lbl.ClientID %>').innerHTML = date.toLocaleDateString() + " : " + date.toLocaleTimeString();
            setTimeout("SetTime()", 1000);
        }  

    </script>

フランス語などの異なる文化を設定した場合でも、常に英語の日時文字列が表示されます。

マスターページのコードビハインドファイルを別の方法で試しました。

 protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    Timer1.Tick += new EventHandler<EventArgs>(Timer1_Tick);
}

void Timer1_Tick(object sender, EventArgs e)
{
    Label2.Text = DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString();
    UpdatePanel1.Update();
}

ここでは、選択したカルチャに基づいて、異なる言語の日付文字列を取得しています。しかし、私はタイマーを使いたくありません。方法はありますか、タイマーを使用せずにこれを達成できます。ありがとう。

4

4 に答える 4

1

toLocaleDateStringクライアントのロケールを使用し(通常、変更を有効にするにはブラウザを再起動する必要があります)、必ずしも.NETスレッドで使用されるカルチャに関連しているとは限りません。

于 2012-08-23T14:01:16.497 に答える
1

これを使ってみてください、

function SetTime() {
    var date = new Date();
    var dateFormat = '<%=System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern%>';
    var timeFormat = '<%=System.Threading.Thread.CurrentThread.CurrentCulture.DateTimeFormat.LongTimePattern%>';
     var datetimeFormat = dateFormat + " " + timeFormat;
     var cultureSpecificValue= date.toString(datetimeFormat);
    alert(cultureSpecificValue);

   //Your Code

}

上記のコードでは、 Datejs日時ライブラリの「toString」関数を使用しています。

于 2012-08-23T14:15:27.977 に答える
0

これは、次のようにweb.configファイルで定義できます。

<globalization enableClientBasedCulture="true" culture="auto:en-GB" uiCulture="auto:en"/>

これにより、クライアントベースの形式が有効になりますが、クライアントによって定義されていない場合はデフォルトを選択します

あなたのderired結果のための必需品として修正してください。

これを特定のページにのみ設定する場合Date.format = 'yyyy-mm-dd'; は、javascript関数の外側に配置します。

//よろしく

于 2012-08-23T14:08:26.520 に答える
0

ScriptManagerでページを制御できるため、MicrosoftAjaxDateオブジェクト拡張機能を使用できます。この目的のために、ScriptManagerのEnableScriptGlobalizationプロパティをに設定しtrueます。次に、次のスクリプトを使用できます。

var localDate = new Date().localeFormat("F");

Microsoft Ajax拡張機能の詳細については、こちらをご覧ください:MicrosoftAjaxJavaScriptベースタイプ拡張機能

于 2012-08-23T14:33:38.410 に答える