如何在点击时间戳时获取当前时间?

时间:2017-12-10 07:14:40

标签: javascript jquery bootstrap-4 eonasdan-datetimepicker

我的代码如下所示:

  // 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。

我该怎么做才能获得点击时间戳的当前时间?

3 个答案:

答案 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

获取活动日期

JSFiddle

如果您想要点击更新,请将此功能用于#timepicker

答案 2 :(得分:0)

Onclick事件,你应该从new Date()获得时间并使用它