首页 > 解决方案 > daterangepicker startDate 不返回相同的值(或者,如何使用 daterangepicker 设置初始时间?)

问题描述

我有一个只有时间的日期范围选择器,我想为其设置初始时间值。我发现这篇文章谈论使用 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:15am 值。控件向用户显示“08:15 pm”,而不是“10:15am”。

我可以让我的程序在启动时进行测试,以计算使用的偏移量 daterangepicker,然后在我想设置时间时使用该偏移量的负数。希望有一个更优雅的解决方案。

标签: daterangepicker

解决方案


如果您使用 moment() 设置 startDate,那么时区问题(如果是这样的话;可能只是格式错误的数据)会起作用:

startDate: moment(startTime),

其中 startTime 采用以下格式:

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


推荐阅读