Не менять время при смене сборщика

On v4.17.43

Итак, у меня есть простой сборщик:

$('.datetimepicker .date-range-start').datetimepicker({
    format: 'YYYY-MM-DD HH:mm',
    maxDate:moment().endOf('day')
})

и дата по умолчанию установлена ​​​​в html примерно так: «2016-10-31 00:00».

<input type="text" class="date-range-start" name="start" value="2016-10-31 00:00" />

Но всякий раз, когда вы меняете день с помощью средства выбора, время меняется на текущее время. Как я могу заставить его ОСТАВАТЬСЯ как 00:00, если пользователь фактически не изменит время с помощью временной части средства выбора.

Я нашел одного человека, который сказал set useCurrent: 'day', но для меня это ничего не меняет.


person SpeedOfRound    schedule 31.10.2016    source источник
comment
Можете ли вы добавить свой HTML-код и показать, как вы устанавливаете дату по умолчанию? Обратите внимание, что параметр useCurrent принимает логическое значение, поэтому для его отключения необходимо использовать useCurrent: false вместо 'day'   -  person VincenzoC    schedule 31.10.2016
comment
Когда я говорю установить дату по умолчанию, я имею в виду, что я создаю экземпляр средства выбора даты на входе со значением «2016-10-31 00:00». Я пробовал useCurrent: false тоже без изменений. Я читал, что в useCurrent можно было указать «день», «месяц» или «год», которого не было в документе, но, возможно, он устарел.   -  person SpeedOfRound    schedule 31.10.2016
comment
Хорошо, мне жаль, что useCurrent: false не помогло, в любом случае я думаю, что добавление html-кода поможет найти решение.   -  person VincenzoC    schedule 31.10.2016


Ответы (1)


Вы можете установить defaultValue для средства выбора, используя атрибут данных вместо установки value , так что у вас будет data-date-default-date на входе.

Подробнее об data-* инициализации можно узнать здесь и здесь.

Вот рабочий пример:

$('.datetimepicker .date-range-start').datetimepicker({
    format: 'YYYY-MM-DD HH:mm',
    maxDate: moment().endOf('day')
})
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/css/bootstrap-datetimepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/locale/en-gb.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.43/js/bootstrap-datetimepicker.min.js"></script>

<div class='col-sm-6 datetimepicker'>
    <input type="text" class="form-control date-range-start" name="start" data-date-default-date="2016-10-31 00:00" />
</div>


Обратите внимание, что ваш пример будет работать так, как вы ожидаете, если вы используете версию 4.17.37 средства выбора даты и времени, как показано в следующем примере. Возможно, вы также можете рассмотреть возможность перехода на предыдущую версию datetimepicker.

$('.datetimepicker .date-range-start').datetimepicker({
    format: 'YYYY-MM-DD HH:mm',
    maxDate: moment().endOf('day')
})
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.css" rel="stylesheet"/>

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/moment.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.1/locale/en-gb.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script>

<div class='col-sm-6 datetimepicker'>
    <input type="text" class="form-control date-range-start" name="start" value="2016-10-31 00:00" />
</div>

person VincenzoC    schedule 01.11.2016
comment
добавление атрибута data-date-default-date вместо значения дает мне именно то, что я хочу, спасибо! Я нахожу это довольно неинтуитивным, хотя :/ - person SpeedOfRound; 02.11.2016
comment
Я согласен с вами, старая версия работает более естественно, в любом случае я рад, что вы решили свою проблему. - person VincenzoC; 02.11.2016