Выбор диапазона дат создает неправильные значения времени для 24-часового диапазона - PullRequest
0 голосов
/ 02 мая 2019

DateRangePicker (http://www.daterangepicker.com/) создает неправильные значения. Когда, например, я выбираю значение 13:00, на входе обнаруживается, что это 01: 00

Я включил timePicker24Hour дляправда, поэтому я не знаю, в чем проблема

код веб-страницы

$(function() {
  $('input[class*="datetimes"]').daterangepicker({
    autoUpdateInput: true,
    singleDatePicker: true,
    timePicker: true,
    minYear: 1901,
    timePicker24Hour: true,
    timePickerIncrement: 5,
    maxYear: parseInt(moment().format('YYYY'), 10),
    locale: {
      format: 'YYYY-MM-DD hh:mm'
    },
    opens: "center"
  });
});
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />


<input class="form-control datetimes" type="text" name="end_time" id="end_time" />

У кого-нибудь была эта ошибка или я что-то неправильно настроил?

Ответы [ 2 ]

1 голос
/ 02 мая 2019

Ваша проблема в том, что формат, который вы выводите обратно на вход (через локаль), имеет формат hh:mm, который является 12-часовым форматом (mm).Вы хотите HH вместо этого, делая весь формат YYYY-MM-DD HH:mm.Само средство выбора даты установлено в 24-часовой формат, выполнив timePicker24Hour: true, как вы делали.

    $(function() {
      $('input[class*="datetimes"]').daterangepicker({
        autoUpdateInput: true,
        singleDatePicker: true,
        timePicker: true,
        minYear: 1901,
        timePicker24Hour: true,
        timePickerIncrement: 5,
        maxYear: parseInt(moment().format('YYYY'),10),
        locale: {
            format: 'YYYY-MM-DD HH:mm'
          },
        opens: "center"
      });
    });
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<input class="form-control datetimes" type="text" name="end_time" id="end_time" />
1 голос
/ 02 мая 2019

Вам нужно прописные буквы HH (24-часовой формат) в формате даты

$(function() {
  $('input[class*="datetimes"]').daterangepicker({
    autoUpdateInput: true,
    singleDatePicker: true,
    timePicker: true,
    minYear: 1901,
    timePicker24Hour: true,
    timePickerIncrement: 5,
    maxYear: parseInt(moment().format('YYYY'),10),
    locale: {
        format: 'YYYY-MM-DD HH:mm'
      },
    opens: "center"
  });
});
<script type="text/javascript" src="https://cdn.jsdelivr.net/jquery/latest/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/momentjs/latest/moment.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css" />

<input class="form-control datetimes" type="text" name="end_time" id="end_time" />
...