2012-08-23 67 views
0

我想顯示日期時間(我已放置在母版頁上);在當前文化的基礎上以不同的語言。顯示文化的基礎上的日期

我上主的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(); 
} 

在這裏,我的文化選擇的基礎上獲得的日期字符串以不同的語言。但我不想使用Timer。有什麼辦法,我可以實現這一點,而不使用計時器。謝謝。

回答

0

嘗試使用此,

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 

} 

我在上面的代碼中使用 「的toString」 功能Datejs日期時間庫。

1

toLocaleDateString使用客戶端的區域(和通常需要重新啓動瀏覽器用於改變生效),並且不一定與在.NET線程使用的培養。

0

,你可以在你的web.config文件中定義這一點,就像這樣:

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

這將使基於客戶端的格式,而艇員選拔默認值,如果不是由客戶端定義

修改作爲您的派生結果的祕密。

如果您只想在特定頁面上設置此項,請將Date.format = 'yyyy-mm-dd'; 置於您的javascript函數之外。

//問候

0

當你有ScriptManager控件的頁面,你可以使用微軟的Ajax Date對象擴展。爲此,將ScriptManager的EnableScriptGlobalization屬性設置爲true。然後你可以使用這個腳本:

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

更多關於微軟的Ajax擴展這裏:Microsoft Ajax JavaScript Base Type Extensions

相關問題