daterangepicker startDate не возвращает того же значения (или, как установить начальное время с помощью daterangepicker?) - PullRequest
1 голос
/ 18 января 2020

У меня есть указатель даты только для времени, для которого я хочу установить начальное значение времени. Я нашел эту статью , в которой говорится об использовании startDate для установки времени (недокументированная функция). Но когда я устанавливаю время, а затем получаю время, оно отключается на 10 часов. Почти наверняка проблема с часовым поясом, но я не знаю, как ее исправить или обойти.

var dateNotUsed = '2020-01-01'; /* can be any valid date; not shown to user */
var startTime = '10:15 am';

$('#myTimePicker').daterangepicker({
        timePicker: true,
        singleDatePicker: true,
        startDate: '"' + dateNotUsed + " " + startTime + '"',
        timePickerIncrement: 1,
        locale: {
            format: 'hh:mm a'
        }
    }).on('show.daterangepicker', function (ev, picker) {
        picker.container.find(".calendar-table").hide();
});

var getTime = $('#myTimePicker').val();

На данный момент getTime == '08: 15 pm ', а не значение 10:15, которое мы пытались установить , Элемент управления отображает «08:15 вечера» для пользователя, а не «10: 15 утра».

Я мог бы заставить мою программу выполнить тест при запуске, чтобы вычислить смещение, используя указатель даты, а затем использовать отрицательный от этого смещения всякий раз, когда я хочу установить время. Надеялся на более элегантное решение.

1 Ответ

0 голосов
/ 20 января 2020

Оказывается, проблема с часовым поясом (если это то, что было; возможно, это были только что неправильно сформированные данные) работает, если вы используете moment () для установки startDate:

startDate: moment(startTime),

где startTime в этом формате:

var startTime = '03:25:00'; // 3:25am

...