我的代码如下所示:
// TIME
$('#timepicker').datetimepicker({
minDate: minTime,
})
.on('dp.show', function(e){
console.log(selectedDate);
if($(this).val()==""){
$(this).val(minTime.format("HH:mm"));
}
// If the date is not selected yet, Nothing to do... Onload min date applies
if( typeof(selectedDate) == "undefined" ){
console.log("Date undefined");
// If a date is selected, check if it's the same date as the min date
}else if( selectedDate == minDate.format("YYYY-MM-DD")){
console.log("Date defined - SAME");
$(this).data("DateTimePicker").minDate(minTime);
// If the date is different from the min date
}else{
console.log("Date defined - Different");
$(this).data("DateTimePicker").minDate(false);
}
})
.val("");
演示和完整代码如下:https://jsfiddle.net/oscar11/t0z3td1u/4/
看来我的代码仍然不完美。 minTime
是从第一次执行小提琴时开始的。
单击时间选择器时应该采取此措施。例如,我在15.00运行你的jsfidde。 5分钟后,我选择时间戳,结果固定在20.00。应该是在20:05。
我该怎么做才能获得点击时间戳的当前时间?
答案 0 :(得分:2)
注意:此问题与OP中的previous question有关,并且已接受的解决方案位于this Fiddle。
正如Pedram正确陈述的那样,您只需要在时间选择器打开时获取当前时间......并使用此更好的值作为输入。
// TIME
$('#timepicker').datetimepicker({
minDate: minTime,
})
.on('dp.show', function(e){
console.log(selectedDate);
if($(this).val()==""){
minTime = moment().add(offset, 'm'); // Just get the current time here!
$(this).val(minTime.format("HH:mm"));
}
// ... (Rest is unchanged)
现在,您会说下拉列表中的最短时间仍未改变...因此,用户可以使用向下箭头选择20.00而不是20.05。
可悲的是......实例化dateTimePicker
后,无法更改minTime
等选项。这是issue opened since may 2014 on GitHub。
我猜你不得不忍受它。
答案 1 :(得分:1)
minTime
是从第一次执行小提琴时开始的。应该是 在点击timepicker
时采取
因此,只需更新您更改日期的时间:
.on('dp.change dp.update', function(e){
var now = new Date();
var formatted = now.getHours() + ":" + now.getMinutes();
$('#timepicker').val(formatted);
})
您可以使用new Date()
获取当前时间或使用e.date
如果您想要点击更新,请将此功能用于#timepicker
答案 2 :(得分:0)
Onclick事件,你应该从new Date()
获得时间并使用它