JQuery UI DatePicker - я могу отформатировать дату, которая была локализована? - PullRequest
4 голосов
/ 10 декабря 2010

У меня есть средство выбора даты jQuery UI, и я ищу, чтобы локализовать возвращенную дату и затем отформатировать ее, чтобы удалить ведущие нули.

Кажется, я могу сделать один или другой.Есть ли способ как локализовать, так и отформатировать его?

Мой пример кода:

//  myDate = 01/25/2010
//  myLanguage = "";  //for US english, but could be any language 

$('#mytxtbox').datepicker($.datepicker.regional['<%= mylanguage %>']);
$('#mytxtbox').datepicker({ dateFormat: 'm/d/yy' });

var dateToSet = $.datepicker.parseDate('m/d/yy', '<%= myDate %>');     
$('#mytxtbox').datepicker("setDate", dateToSet);

в приведенном выше примере дата, отображаемая в моем текстовом поле: "25.01.2010"».Если я закомментирую строку, которая устанавливает регион, форматирование работает (т.е. 25.01.2010).Мне кажется, что локализация переписывает мой "dateFormat"?Возможно ли сделать оба варианта?

Обратите внимание, я включил все соответствующие файлы регионов

Ответы [ 6 ]

1 голос
/ 08 августа 2013

Я столкнулся с той же проблемой. Мое решение: (региональные настройки находятся в массиве, просто добавьте некоторые значения)

var defaults = $.datepicker.regional['<%= mylanguage %>'];
defaults['dateFormat'] = 'm/d/yy';
$( "#mytxtbox" ).datepicker( defaults );
0 голосов
/ 27 мая 2016

Может быть, слишком поздно, но, поскольку я провел небольшое исследование в Google и пришел сюда, я опубликовал свое решение. Я полагаю, у вас есть тип ввода для средства выбора даты, например:

<input id="date" type="text" name="date">

Если вы хотите установить язык локали в соответствии с вашими посетителями и предопределенным форматом даты для дальнейшего уточнения, вы можете запустить свой указатель даты следующим образом:

      $(function() {
          $('#date').datepicker();
    $('#date').datepicker("option",$.datepicker.regional["<<your_variable_locale>>"]);
    $('#date').datepicker("option","dateFormat","dd/mm/yy");
});

Это изменит английский формат по умолчанию, т.е. мм / дд / гг.

В документации не очень ясно, как комбинировать такие опции, как региональный формат и формат даты, но это работает для меня в Firefox.

0 голосов
/ 03 июня 2014

если вы выполняете региональный и beforeShow или любую другую функцию, подобную этой, вы можете сделать это так в одном:

$("#mytxtbox").datepicker({dateFormat: 'dd-mm-y'},
    $.datepicker.regional[ "ar" ],
            {
                beforeShow: function(input, inst) {
                    var widget = $(inst).datepicker('widget');
                    widget.css('margin-left', $(input).outerWidth() - widget.outerWidth());
                }
            });
0 голосов
/ 10 декабря 2010

Я полагаю, это потому, что вы уже инициализировали средство выбора даты с локализацией в качестве единственной опции. Если вы не хотите, чтобы регион был динамичным, или хотите установить начальное состояние средства выбора даты, попробуйте передать оба параметра в один options object.

$("#mytxtbox")
  .datepicker({ 
    dateFormat: 'm/d/yy',  
    $.datepicker.regional['<%= mylanguage %>']
  });

ИЛИ если вы хотите, чтобы он был динамическим, сделайте что-то похожее на jQuery ui пример .

Попробуйте сначала отформатировать дату, ПОТОМ установив региональную опцию.

//original initialization
$("#mytxtbox").datepicker({dateFormat: 'm/d/yy'});
//then set localize the date based on a change function
$("ul.region").change({
 $("mytxtbox").datepicker('option', $.datepicker.regional[$(this).val()]);
});
0 голосов
/ 10 декабря 2010

Похоже на ваш вопрос Язык JQuery datepicker

0 голосов
/ 10 декабря 2010

setDate принимает объект Date в качестве параметра, который не зависит от региона.

Устанавливает текущую дату для средства выбора даты.Новая дата может быть объектом Date или строкой в ​​текущем формате даты (например, «01/26/2009»), числом дней с сегодняшнего дня (например, +7) или строкой значений и периодов («y» длягоды, «m» для месяцев, «w» для недель, «d» для дней, например, «+ 1m + 7d»), или ноль, чтобы очистить выбранную дату.

...