Дата формата начальной загрузки

Я использую средство выбора даты начальной загрузки в форме с ajax для обновления ограничения даты на средстве выбора даты.

Я нажимаю ajax, чтобы получить общее количество дней, и setEndDate средства выбора даты, чтобы ограничить верхнюю дату (все более поздние даты будут отключены).

$.ajax({
    url: url,
    type: 'POST',
    dataType: 'json',
    success: function (data) {
        if('total' in data && data['total'] > 1) {

            // datepicker successfully set the limit to next 'total' days
            $datepicker.datepicker('setEndDate', '+'+data['total']+'d');

            // how to set the field value with that end date?
            $datepicker.val($datepicker.datepicker('getEndDate'));
        }
    },
    error: function (e) {
        console.log(e);
    }
});

мой вопрос, как отформатировать $datepicker.datepicker('getEndDate'), чтобы yyyy-mm-dd? в настоящее время он возвращает Fri Jul 27 2018 08:00:00 GMT+0800 (Singapore Standard Time).

Я проверил документацию [1], но нет параметра для назначения при форматировании файла getEndDate.

оценил любую помощь. благодарю вас.

изменить:

для всех, у кого есть какие-то проблемы со мной, в настоящее время мое решение анализирует возврат $datepicker.datepicker('getEndDate') вручную.

Я видел, что вывод был равен Date .toString(), поэтому я передаю вывод как конструктор даты JavaScript, а затем форматирую его вручную.

var d = new Date($datepicker.datepicker('getEndDate'));
if(d instanceof Date && !isNaN(d)) {
    var day = '' + d.getDate(),
        month = '' + (d.getMonth() + 1),
        year = d.getFullYear();
    if (month.length < 2) month = '0' + month;
    if (day.length < 2) day = '0' + day;

    // console.log([year, month, day].join('-'));
    $datepicker.datepicker('update', [year, month, day].join('-'));
}

[1]http://bootstrap-datepicker.readthedocs.io/en/latest/methods.html


person oon arfiandwi    schedule 20.07.2018    source источник


Ответы (1)


Вы можете использовать $("#date").data("datepicker").getFormattedDate(), но это дает формат выбранной даты.

Поэтому вам нужно использовать getEndDate() из datepicker, чтобы получить дату окончания, и объект DPGlobal, чтобы проанализировать дату.

$("#date").datepicker({
    format:"dd/mm/yyyy",
    endDate:"26/07/2018"
});

function getDate()
{
   var date = $.fn.datepicker.DPGlobal.formatDate($("#date").data("datepicker").getEndDate(),"dd-mm-yyyy","en")
   console.log(date)
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.8.0/js/bootstrap-datepicker.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.3.0/css/datepicker.css"/>

<input id="date">
<button onclick="getDate()">Get Date</button>

person Vignesh Raja    schedule 22.07.2018
comment
где найти документацию о DPGlobal? Я видел на github bootstrap datepicker, но не могу найти его на их сайте документации, это официальные инструменты (я имею в виду, что в ближайшее время они не устареют)? - person oon arfiandwi; 22.07.2018
comment
Я думаю, что это не будет устаревшим. Я проверил их источник. «getFormattedDate» использует его внутри. - person Vignesh Raja; 22.07.2018