Javascript 在DateTimePicker上设置defaultDate,在事件触发时使用dtp中的函数

Javascript 在DateTimePicker上设置defaultDate,在事件触发时使用dtp中的函数,javascript,jquery,twitter-bootstrap,eonasdan-datetimepicker,Javascript,Jquery,Twitter Bootstrap,Eonasdan Datetimepicker,我习惯在我的页面上有一个日历,并选择天和小时 我是这样设置的: var $dtp = $("#datetimepicker1"); $(function () { $dtp.datetimepicker({ format: 'DD-MM-YYYY HH:00', locale: 'pt', defaultDate: d, minDate: dMin, maxDate: dMax }); }); 我有

我习惯在我的页面上有一个日历,并选择天和小时

我是这样设置的:

var $dtp = $("#datetimepicker1");
$(function () {
    $dtp.datetimepicker({
        format: 'DD-MM-YYYY HH:00',
        locale: 'pt',
        defaultDate: d,
        minDate: dMin,
        maxDate: dMax
    });
});
我有一个触发器“dp.change”:

dMin
dMax
d
是日期对象:

var d = new Date(); //actual Date
var dMin = new Date(2012, 0, 1, 0);
var dMax = new Date(); dMax.setDate(dMax.getDate()+2); dMax.setHours(0); //more 2 days
嗯,我需要设置
defaultDate
,因为有时
d
会更改,它不是当前日期,而是介于
dMin
dMax
之间的另一个日期

问题是,无论
d
是否为当前日期,在初始化datetimepicker设置时使用
defaultDate
,日历都不工作

在控制台上检查错误,我得出结论,
$dtp.data(“DateTimePicker”)
未定义的
,当第一次
“dp.change”
发生时,但只有在初始化设置时我有
defaultDate


我在解决这个问题时遇到了一些问题。

您只需在listner中使用类似于
if($dtp.data(“DateTimePicker”)
的东西检查
$dtp.data(“DateTimePicker”)
是否未定义。您还可以使用事件参数,如下所示:

日期更改时激发

参数:

e = {
    date, //date the picker changed to. Type: moment object (clone)
    oldDate //previous date. Type: moment object (clone) or false in the event of a null
}
这里有一个活样本:

var d=新日期()//实际日期
var dMin=新日期(2012,0,1,0);
var dMax=新日期();
dMax.setDate(dMax.getDate()+2);
最大设定小时数(0)//2天以上
变量$dtp=$(“#日期时间选择器1”);
$(函数(){
$dtp.datetimepicker({
格式:“DD-MM-YYYY HH:00”,
地区:'pt',
违约日期:d,
minDate:dMin,
maxDate:dMax
});
});
$dtp.on(“dp.change”,功能(e){
//解决方案1:只需检查未定义的
//if($dtp&&$dtp.data(“DateTimePicker”))d=$dtp.data(“DateTimePicker”).date().toDate();
如果(如日期){
d=e.date.toDate();
}
});

非常感谢。这很有效。这么简单的事情,我正在做一个大问题。我会考虑使用Myjjs。我使用的是Date对象,因为我开始在我的页面上使用它有一段时间了,我需要将datetimepicker与现有代码集成。。。
e = {
    date, //date the picker changed to. Type: moment object (clone)
    oldDate //previous date. Type: moment object (clone) or false in the event of a null
}