1

我想显示日期时间(我放在母版页上);在当前文化的基础上使用不同的语言。

我在master上的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

由于您拥有 ScriptManager 控件和页面,因此您可以使用 Microsoft Ajax Date 对象扩展。为此,将 ScriptManager 的EnableScriptGlobalization属性设置为true。然后你可以使用这个脚本:

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

更多关于 Microsoft Ajax 扩展的信息:Microsoft Ajax JavaScript Base Type Extensions

于 2012-08-23T14:33:38.410 回答
0

您可以在 web.config 文件中定义它,如下所示:

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

这应该启用基于客户端的格式,如果客户端未定义,则选择默认值

为您的 derired 结果修改为 nessecary。

如果您只想在特定页面上设置它,请将Date.format = 'yyyy-mm-dd'; 您的 javascript 函数放在外部。

//问候

于 2012-08-23T14:08:26.520 回答