2

Web サイトで Dojo DateTextBox を使用しています。この Dojo DateTextBox は、制約"dd-mm-yyyy"などの形式で日付形式を取ります。訪問者のロケールの日付形式文字列を選択し、それをこの DateTextBox に渡して日付をローカル形式で表示する必要があります。フォーマットされた日付を取得する方法は必要ありませんが、フォーマット文字列を取得する必要があります。

4

2 に答える 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 に答える