13

ユーザーのロケールに応じてjQuery UIのdatepickerで日付形式を設定するにはどうすればよいですか?

ソースhtmlを取得します:

<script type="text/javascript">
    $(function() {
        $(".datefield2").datepicker($.datepicker.regional['de']);
    });
</script>
<form action="/Home/TestDate" method="post">    <input class="datefield2 hasDatepicker valid" name="date" value="21.12.2012" type="text" id="date">
    <input type="submit" value="send">
</form>

取得した日付ピッカーで日付を選択した場合12/21/2012、ただし必要21.12.2012です。

4

4 に答える 4

17

dateFormatオプションを使用してカスタム形式に変更します

$(function() {
    $(".datefield2").datepicker($.datepicker.regional['de']);
    $(".datefield2").datepicker('option','dateFormat','dd.mm.yy');
});

本当の問題は、ローカリゼーションファイルを手動で含める必要があることです。

それらはhttps://github.com/jquery/jquery-ui/tree/master/ui/i18nで見つけることができます
ドイツ語に固有のものはhttps://github.com/jquery/jquery-ui/blob/master/です。 ui / i18n / datepicker-de.js

デモ(完全なローカリゼーションあり)はhttp://jsfiddle.net/gaby/h07ny9ep/で見ることができます

于 2012-12-21T16:28:32.697 に答える
2

次のように日付形式を設定できます。

  $(".datefield2").datepicker({ "dateFormat": "dd.mm.yy"});
于 2012-12-21T16:27:09.193 に答える
0

すぐに利用できるロケール情報がないように見えるので、少し異なるアプローチを使用することにしました。日付を選択して日付を取得するためにのみ日付ピッカーを使用しますが、表示には通常の div とDateを使用します.toLocaleDateString() . この方法では、フォーマットを取得する必要はありません。さらに悪いことに、それらをすべて自分で提供する必要もありません。

JSFiddle

HTML:

<div style="position:relative">
  <div id="date-text">

  </div>
  <div style="position: absolute; left: 0; top: 0">
    <input type="text" size="10" id="dt" style="opacity:0"/>
  </div>
</div>

JS:

var today = new Date();
today.setHours(0,0,0,0);
$("#dt").datepicker({defaultDate: today}).on('change', function() {
  $("#date-text").html($("#dt").datepicker("getDate").toLocaleDateString());
});
$("#date-text").html(today.toLocaleDateString());
于 2017-09-20T08:59:20.740 に答える