2013-02-21 83 views
2

我在我的網站中使用了Dojo DateTextBox,它採用約束形式,如"dd-mm-yyyy"等日期格式。我需要選擇訪問者的區域設置的日期格式字符串並將其傳遞給此DateTextBox以以本地格式顯示日期。我不需要獲取格式化日期的方法,但需要獲取格式字符串。從用戶區域採摘日期格式字符串

+0

爲什麼不把訪問者的語言環境設置爲data-dojo-config?讓Dojo爲您選擇合適的格式。 – peller 2013-03-09 03:22:10

回答

0

嘗試此(參考:Where can I find documentation on formatting a date in JavaScript?):

<script type="text/javascript"> 

var d = new Date(); 

var curr_date = d.getDate(); 
var curr_month = d.getMonth() + 1; 
var curr_year = d.getFullYear(); 

curr_date = (curr_date < 10 ? "0" + curr_date : curr_date); 
curr_month = (curr_month < 10 ? "0" + curr_month : curr_month); 

var formatted_date = "" + curr_date + "-" + curr_month + "-" + curr_year; 

</script> 
1
require(["dojo/i18n", "dojo/date/locale"], function(i18n) { 

    var defaultLocale = i18n.normalizeLocale(); 
    var bundle = i18n.getLocalization("dojo.cldr", "gregorian", defaultLocale); 

    // all available formats 
    console.dir(bundle); 

    // some of them 
    console.log(bundle['dateFormat-full']); 
    console.log(bundle['dateFormat-long']); 
    console.log(bundle['dateFormat-medium']); 
    console.log(bundle['dateFormat-short']); 
}); 

參見實例:http://jsfiddle.net/phusick/4ZDCv/

備選地直接要求經由dojo/i18n插件本地化束:

require(["dojo/i18n!dojo/cldr/nls/gregorian"], function(gregorian) { 

    console.dir(gregorian); // all available formats 

    console.log(gregorian['dateFormat-full']); 
}); 

的jsfiddle:http://jsfiddle.net/phusick/jJVEU/

編輯:dijit/form/DateTextBox處理區域本身,因此很可能所有你需要的是設置formatLength

<input 
    data-dojo-type="dijit/form/DateTextBox" 
    data-dojo-props="constraints: { formatLength: 'long' }" 
/> 

一個例子它的工作原理與頁面上的多個地區:http://jsfiddle.net/phusick/PhHwg/