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
}