我在我的网站中使用 Dojo DateTextBox,它采用约束"dd-mm-yyyy"
等形式的日期格式。我需要选择访问者区域设置的日期格式字符串并将其传递给此 DateTextBox 以以本地格式显示日期。我不需要获取格式化日期的方法,而是获取格式字符串。
问问题
555 次
2 回答
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/
于 2013-02-21T09:19:20.793 回答
0
试试这个(参考:在哪里可以找到有关在 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>
于 2013-02-21T06:58:41.350 回答