Bootstrap Datetimepicker 无法设置日期值

Bootstrap Datetimepicker cannot set the date value

我在我的项目中使用 bootstrap datetimepicker。我在输入控件呈现后遇到设置日期值的问题。

一开始我是这样设置日期时间选择器的:

$(".date").datetimepicker({
    defaultDate: moment(),
    format: 'YYYY-MM-DD'
}).on('keypress paste', function (e) {
    e.preventDefault();
    return false;
});

然后我通过调用以下函数加载控件的实际数据日期值:

function SetDate(control,date)
{
    $('#'+ control).datetimepicker({
        defaultDate: new Date(date)
    });
}

然后 datetimepicker 仅显示当前日期,但当我使用 document.getElementById('elementname').value.[ 获取值时,它 return 正确的日期值不是当前日期=13=]

请指教。谢谢

使用以下方法获取值:

$("#elementname").data('datepicker').getFormattedDate('YYYY-MM-DD');

我猜,对于显示的选项,您正在使用 http://eonasdan.github.io/bootstrap-datetimepicker

你使用选择器的方式是错误的,因为你正在做的是再次调用选择器,最好这样做:

$('#myDatepicker').datetimepicker();

然后用你的control/function(我会用一个按钮触发动作)

$('#set').on('click', function() {
  SetDate("myDatepicker", moment().subtract(1, 'day'));
});

function SetDate(control, date) {
  $('#' + control).data('DateTimePicker').defaultDate(date);
}

其中 .data('DateTimePicker').defaultDate(date) 是为以后设置的默认日期。

而其中moment().subtract(1, 'day'))是取出一天的参数date,不需要像moment对象一样再次解析出来; 如果您需要解析字符串日期,您可以使用:

moment('20170202','YYYY-MM-DD')

第一个参数是您的日期字符串。 https://momentjs.com/docs/#/parsing/string-format/

这里是如何为插件设置选项的http://eonasdan.github.io/bootstrap-datetimepicker/Options/