it-swarm.com.ru

Как установить формат локали из DatePicker?

Как я могу установить формат даты в DatePicker пользовательского интерфейса jQuery в соответствии с языковым стандартом пользователя?

Я получаю исходный 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>

Если выбрать дату в DatePicker я получаю 12/21/2012, однако мне нужно 21.12.2012.

12
Mediator

Вы можете установить формат даты следующим образом: 

  $(".datefield2").datepicker({ "dateFormat": "dd.mm.yy"});
4
Fiona - myaccessible.website

Используйте 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/

16
Gabriele Petrioli

Поскольку, похоже, нет доступной информации о локали, я решил использовать немного другой подход: я использую DatePicker только для выбора даты и извлечения даты из нее, но для отображения я использую обычный 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());
0
velis

Кажется, что документация JQuery в Интернете воспроизводит игру в прятки, где находятся файлы I18n для средства выбора даты, например,.

Где находятся i18n-файлы jQuery UI datepicker> = 1.11.0

На момент размещения ссылки:

https://raw.githubusercontent.com/jquery/jquery-ui/master/ui/i18n/datepicker-de.js

кажется действительным. Если я включил это, это не работало само по себе. Я закончил Используя http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js который не является той же версией, что и 1.12 JQuery я использую, но, похоже, работает.

Обратите внимание, что здесь я использую формат даты iso 2017-03-18 в качестве гг-мм-дд вместо немецкого стиля локали.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Default functionality</title>
<link rel="stylesheet"
    href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/i18n/jquery-ui-i18n.min.js"></script>
<script>
    $(function() {
        // https://stackoverflow.com/questions/494958/how-do-i-localize-the-jquery-ui-datepicker
        // https://stackoverflow.com/questions/13993619/how-to-set-locale-format-from-datepicker
        $(".datepicker").datepicker($.datepicker.regional['de']);
        $(".datepicker").datepicker('option','dateFormat','yy-mm-dd')
    });
</script>
</head>
0
Wolfgang Fahl