5

この例を使用して日付範囲の選択をテストしています: http://salman-w.blogspot.no/2013/01/jquery-ui-datepicker-examples.html#example-7

dateFormat を変更したいのですが、それを追加すると、コンソールに次のエラーが表示されます:「Uncaught Unexpectedliteral at position 2」

次のように、dateFormat に 1 行 (3 行目) を追加します。

 $(function() {
   $("#datepicker").datepicker({
     dateFormat: "yy-mm-dd",
     beforeShowDay: function(date) {
       var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
       var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
       return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
    },
     onSelect: function(dateText, inst) {
       var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
       var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
       if (!date1 || date2) {
         $("#input1").val(dateText);
         $("#input2").val("");
         $(this).datepicker("option", "minDate", dateText);
       } else {
         $("#input2").val(dateText);
         $(this).datepicker("option", "minDate", null);
       }
     }
  });
});

または、エラーの例については jsfiddle を参照してください: http://jsfiddle.net/jaaqs/

では、この datepicker-range-example の dateFormat を変更するにはどうすればよいですか?

4

5 に答える 5

9

フォーマットに設定されたデフォルトを使用します。

$.datepicker.setDefaults({
     dateFormat: 'yy-mm-dd'
});

日付が正しい形式で表示されるようになりました (例: 2013-06-12)

正しい形式

ここで JSFiddle を更新しました: http://jsfiddle.net/jaaqs/3/

于 2013-06-07T01:00:41.550 に答える
3

日付ピッカーに指定した日付形式 ( )yy-mm-ddは、デフォルトの日付形式 ( ) とは異なりますmm/dd/yy。あなたのコードでは、UI は をパースしないものとしてパースしようとします (関数は の代わりに a を見るとあきらめ2013-01-01ます) 。mm/dd/yy1/

可能な修正は次のとおりです。

A. datepicker オプションで指定したものと同じ日付形式を明示的に使用します。

$("#datepicker").datepicker({
    dateFormat: "yy-mm-dd",
    beforeShowDay: function (date) {
        var date1 = $.datepicker.parseDate("yy-mm-dd", $("#input1").val());
        var date2 = $.datepicker.parseDate("yy-mm-dd", $("#input2").val());
        // ...

B. オンデマンドで dateFormat を取得します。

$("#datepicker").datepicker({
    beforeShowDay: function (date) {
        var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val());
        var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
        // ...

上記の例$(this).datepicker("option", "dateFormat")では、現在の日付ピッカーで使用されている日付形式を返します (明示的に指定されているか、日付ピッカーのデフォルトから継承されているかに関係なく)。

于 2014-01-20T07:05:00.687 に答える
1

あなたの日付形式が問題でした

$(function() {
    $("#datepicker").datepicker({
        dateFormat: "yy-mm-dd",
        beforeShowDay: function(date) {
            var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val());
            var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
            return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
        },
        onSelect: function(dateText, inst) {
            var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val());
            var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
            if (!date1 || date2) {
                $("#input1").val(dateText);
                $("#input2").val("");
                $(this).datepicker("option", "minDate", dateText);
            } else {
                $("#input2").val(dateText);
                $(this).datepicker("option", "minDate", null);
            }
        }
    });
});

デモ:フィドル

于 2013-06-07T01:03:03.303 に答える
0

datepicker の JS ファイル内で日付の書式設定を変更することもできます。

26行目

あなたはこれを持っています

   this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'mm/dd/yyyy');

GMT (英国の日付設定) など、任意の値に変更できます。

        this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'dd/mm/yyyy');

これは世界的な変化ですが、

于 2014-10-17T13:22:43.300 に答える