Как заставить Bootstrap Datepicker возвращать количество дней вместо даты?

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

Мой кусок кода:

$('#datepicker').datepicker({
            language: 'fr',
            startDate: new Date(),
            autoclose: true
        }).on('changeDate', function(e) {
            var start = moment(e.date);
            var end   = moment(new Date());
            var diff = start.diff(end, 'days'); // returns correct number
            $(this).val(diff); // doesn't seem to have any effect
        });

Даже если я использую return diff, #datepicker всегда будет показывать выбранную дату, когда мне нужно количество дней между двумя датами.

Большое спасибо.


person D4V1D    schedule 28.10.2014    source источник


Ответы (1)


Используйте 2 входа и один значок, используйте значок для щелчка и установите значение на другом входе вместо того, которое используется для средства выбора даты

<input id="diffInput"  />
<div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
                <div class='input-group date' id='datetimepicker1'>
                    <input id="DONTUSEME" type='text' class="form-control" style="display:none"/>
                    <span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span>
                    </span>
                </div>
            </div>
        </div>
        <script type="text/javascript">
            $(function () {
                $('#datetimepicker1').datetimepicker({
                    language: 'fr',
                    startDate: new Date(),
                    autoclose: true
                }).on('changeDate', function(e) {
                    var start = moment(e.date);
                    var end   = moment(new Date());
                    var diff = start.diff(end, 'days'); // returns correct number
                    $('#diffInput').val(diff); // doesn't seem to have any effect
                });
            });
        </script>
    </div>
</div>

вам придется немного поработать с css, чтобы они держались вместе.

person dariogriffo    schedule 28.10.2014