jQuery UI DatePicker - Изменить формат даты

Я использую пользовательский интерфейс DatePicker из jQuery UI в качестве отдельного средства выбора. У меня есть этот код:


и следующие JS:

$('#datepicker').datepicker();

Когда я пытаюсь вернуть значение с этим кодом:

var date = $('#datepicker').datepicker('getDate');

Я вернулся это:

Tue Aug 25 2009 00:00:00 GMT+0100 (BST)

Это совершенно неправильный формат. Есть ли способ вернуть его в формате DD-MM-YYYY?

вопрос задан 25.08.2009
tarnfeld
9981 репутация

25 ответов


  • 879 рейтинг

    Вот один конкретный для вашего кода:

    var date = $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val();
    

    Более общая информация доступна здесь:

    ответ дан AvatarKava, с репутацией 13014, 25.08.2009
  • 90 рейтинг

    внутри кода скрипта jQuery просто вставьте код.

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

    это должно работать.

    ответ дан sampath, с репутацией 933, 16.08.2010
  • 56 рейтинг

    Метод datepicker getDate возвращает тип даты, а не строку.

    Вам необходимо отформатировать возвращаемое значение в строку, используя формат даты. Используйте функцию datepicker formatDate:

    var dateTypeVar = $('#datepicker').datepicker('getDate');
    $.datepicker.formatDate('dd-mm-yy', dateTypeVar);
    

    Полный список спецификаторов формата доступен здесь .

    ответ дан kcsoft, с репутацией 2269, 25.11.2011
  • 33 рейтинг

    Здесь полный код для выбора даты с форматом даты (гг / мм / дд).

    Скопируйте ссылку ниже и вставьте в заголовок тег:

       
      
       
      
       
     
    
       
    
    

    Скопируйте ниже код и вставьте между тегом тела:

          Date:     
    

    Если вы хотите два (2) типа ввода текста, например Start Date и End Date, используйте этот скрипт и измените формат даты.

       
      
       
      
       
     
    
       
      
    

    Два ввода текста, как:

          Start Date:     
          End Date: 
    
    ответ дан Nasirali, с репутацией 349, 28.01.2012
  • 18 рейтинг

    getDate функция возвращает дату JavaScript. Используйте следующий код для форматирования этой даты:

    var dateObject = $("#datepicker").datepicker("getDate");
    var dateString = $.datepicker.formatDate("dd-mm-yy", dateObject);
    

    Он использует служебную функцию, которая встроена в DatePicker:

    $.datepicker.formatDate( format, date, settings ) - Отформатируйте дату в строковое значение с указанным форматом.

    Полный список спецификаторов формата доступен здесь .

    ответ дан Salman A, с репутацией 165526, 12.12.2012
  • 17 рейтинг

    dateFormat

    Формат проанализированных и отображаемых дат. Этот атрибут является одним из атрибуты регионализации. Для полного списка возможных форматы см. в функции formatDate.

    Примеры кода Инициализируйте средство выбора даты с параметром dateFormat указано.

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

    Получить или установить параметр dateFormat после инициализации.

    //getter
    var dateFormat = $( ".selector" ).datepicker( "option", "dateFormat" );
    //setter
    $( ".selector" ).datepicker( "option", "dateFormat", 'yy-mm-dd' );
    
    ответ дан does_not_exist, с репутацией , 21.06.2010
  • 9 рейтинг
    
    
    
    ответ дан Muddasir Abbas, с репутацией 853, 1.01.2015
  • 9 рейтинг

    $("#datepicker").datepicker("getDate") возвращает объект даты, а не строку.

    var dateObject = $("#datepicker").datepicker("getDate"); // get the date object
    var dateString = dateObject.getFullYear() + '-' + (dateObject.getMonth() + 1) + '-' + dateObject.getDate();// Y-n-j in php date() format
    
    ответ дан Catalin, с репутацией 99, 30.08.2011
  • 8 рейтинг

    Попробуйте использовать

    $( ".selector" ).datepicker({ dateFormat: 'dd/mm/yy' });  
    

    и есть много вариантов, доступных для выбора даты, вы можете найти его здесь

    http://api.jqueryui.com/datepicker/
    

    Это способ вызова средства выбора даты с параметром

    .
    $(function() {
          $('.selector').datepicker({
                dateFormat: 'dd/mm/yy',
                changeMonth: true,
                numberOfMonths: 1,
                buttonImage: 'contact/calendar/calendar.gif',
                buttonImageOnly: true,
                onSelect: function(selectedDate) {
                     // we can write code here 
                 }
          });
    });
    
    ответ дан Ritesh d joshi, с репутацией 651, 7.03.2016
  • 7 рейтинг

    вы можете просто использовать этот формат в вашей функции так же, как

         $(function() {  
            $( "#datepicker" ).datepicker({
                dateFormat: 'dd/mm/yy',
              changeMonth: true,
              changeYear: true
            });
          });
    
    

    ответ дан Rohit, с репутацией 295, 6.01.2016
  • 5 рейтинг

    Это тоже работает:

    $("#datepicker").datepicker({
        dateFormat:'d-m-yy'
    });
    
    ответ дан Patrick Mutwiri, с репутацией 613, 11.12.2015
  • 4 рейтинг

    Если вам нужна дата в формате гг-мм-дд, вы можете использовать это: -

    $("#datepicker").datepicker({ dateFormat: "yy-mm-dd" });
    

    Вы можете найти все поддерживаемые форматы https: // jqueryui. com / datepicker / # date-format

    Я нуждался в 06 декабря 2015, я сделал это: -

    $("#datepicker").datepicker({ dateFormat: "d M,y" });
    
    ответ дан Kgn-web, с репутацией 1856, 6.12.2015
  • 3 рейтинг
    
    
    
    ответ дан Sat, с репутацией 31, 19.11.2012
  • 3 рейтинг

    Я использую JQuery для DatePicker. Эти jqueries используются для этого

    
    
    
    
    
    

    Тогда вы следуете этому коду,

    
    
    
    ответ дан Sinsil Mathew, с репутацией 385, 22.10.2014
  • 3 рейтинг

    Просто запустите эту страницу HTML, вы можете увидеть несколько форматов.

    
    
    jQuery UI Datepicker - Format date
    
    
    

    Date:

    Format options:

    ответ дан Constant Learner, с репутацией 247, 17.06.2013
  • 3 рейтинг
    $("#datepicker").datepicker({ dateFormat: "yy-mm-dd" }).val()
    
    ответ дан sad, с репутацией 31, 11.05.2011
  • 2 рейтинг

    Наконец-то получен ответ для метода изменения даты datepicker:

    $('#formatdate').change(function(){
        $('#datpicker').datepicker("option","dateFormat","yy-mm-dd");
    });
    
    ответ дан ravi soni, с репутацией 29, 11.06.2011
  • 2 рейтинг

    Мой вариант указан ниже:

    $(document).ready(function () {
      var userLang = navigator.language || navigator.userLanguage;
    
      var options = $.extend({},
        $.datepicker.regional["ja"], {
          dateFormat: "yy/mm/dd",
          changeMonth: true,
          changeYear: true,
          highlightWeek: true
        }
      );
    
      $("#japaneseCalendar").datepicker(options);
    });
    #ui-datepicker-div {
      font-size: 14px;
    }
    
    
    
    
    
    

    Japanese JQuery UI Datepicker

    ответ дан does_not_exist, с репутацией , 5.12.2017
  • 2 рейтинг

    Если вы настроили средство выбора даты для элемента input[type="text"], вы можете не получить согласованно отформатированную дату, особенно если пользователь не использует формат даты для ввода данных.

    Например, когда вы устанавливаете dateFormat как dd-mm-yy и пользователь вводит 1-1-1. Datepicker внутренне преобразует это в Jan 01, 2001, но вызов val() для объекта datepicker вернет строку "1-1-1" - именно то, что находится в текстовом поле.

    Это означает, что вы должны либо проверять введенные пользователем данные, чтобы убедиться, что введенная дата соответствует ожидаемому вами формату, либо не разрешать пользователю вводить даты произвольной формы (предпочтительнее вместо выбора календаря). Несмотря на это, можно заставить код DatePicker выдать вам строку, отформатированную так, как вы ожидаете:

    var picker = $('#datepicker');
    
    picker.datepicker({ dateFormat: 'dd-mm-yy' });
    
    picker.val( '1-1-1' );  // simulate user input
    
    alert( picker.val() );  // "1-1-1"
    
    var d = picker.datepicker( 'getDate' );
    var f = picker.datepicker( 'option', 'dateFormat' );
    var v = $.datepicker.formatDate( f, d );
    
    alert( v );             // "01-01-2001"
    

    Имейте в виду, однако, что хотя метод DatePicker getDate() будет возвращать дату, он может делать только то, что вводит пользователь, который не совсем соответствует формату даты. Это означает, что при отсутствии проверки можно получить дату, которая отличается от ожидаемой пользователем Предостережение emptor .

    ответ дан par, с репутацией 12469, 14.05.2013
  • 2 рейтинг

    Я использую это:

    var strDate = $("#dateTo").datepicker('getDate').format('yyyyMMdd');
    

    , который возвращает дату в формате, подобном «20120118» для Jan 18, 2012.

    ответ дан Daniel Morin, с репутацией 21, 18.01.2012
  • 2 рейтинг

    Приведенный ниже код может помочь проверить, получено ли в форме более 1 поля даты:

    
    
    
    
    jQuery UI Datepicker - Display month & year menus
    
    
    

    From Date:

    To Date:

    ответ дан Chakry, с репутацией 27, 4.12.2012
  • 1 рейтинг

    , вы должны использовать data-date-format="yyyy-mm-dd" в поле ввода html и средства выбора исходных данных в JQuery, как простые

    $("#issue_date").datepicker({ 
        dateFormat: "yy-mm-dd",
        changeMonth: true,
        changeYear: true
    });
    
    ответ дан SK Developers, с репутацией 28, 18.03.2018
  • 1 рейтинг

    Вот готовый отрывок из будущей даты. Firefox по умолчанию использует jquery ui В противном случае используется средство выбора даты HTML5. Если FF когда-либо поддерживает HTML5 type = "date", скрипт будет просто избыточен. Не забывайте, что в теге head нужны три зависимости.

    
    
    
      
    
    
    
    
    
    
    ответ дан jimshot, с репутацией 45, 29.09.2017
  • 0 рейтинг

    Я думаю, что правильный способ сделать это будет что-то вроде этого:

    var picker = $('.date-picker');
    var date = $.datepicker.formatDate(
        picker.datepicker('option', 'dateFormat'),
        picker.datepicker('getDate'));
    

    Таким образом, вы убедитесь, что строка формата определена только один раз, и вы используете тот же форматер для преобразования строки формата в форматированную дату.

    ответ дан naktinis, с репутацией 2999, 17.07.2012
  • 0 рейтинг

    Вы можете добавить и попробовать этот способ:

    HTML файл:



    JavaScript file:

    $(function() {  
        $("#demoDatepicker").datepicker({
            dateFormat: 'dd/mm/yy',
            changeMonth: true,
            changeYear: true,
            constrainInput: false
        });
    });
    
    ответ дан Ashraf.Shk786, с репутацией 547, 29.05.2018