Javascript 在日期时间选择器中为当前时间添加4小时

Javascript 在日期时间选择器中为当前时间添加4小时,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,如何从日期时间选取器的开始日期到结束日期添加4小时 您的e.date对象是矩的实例。如您所见,您可以对其使用.add和.subtract函数: $('#endDate').data("DateTimePicker").setMinDate(e.date.add(4, 'hours')); // ... $('#startDate').data("DateTimePicker").setMaxDate(e.date.subtract(4, 'hours')); 至于评论: 要设置默认日期,请使用

如何从日期时间选取器的开始日期到结束日期添加4小时

您的e.date对象是矩的实例。如您所见,您可以对其使用.add和.subtract函数:

$('#endDate').data("DateTimePicker").setMinDate(e.date.add(4, 'hours'));
// ...
$('#startDate').data("DateTimePicker").setMaxDate(e.date.subtract(4, 'hours'));
至于评论:

要设置默认日期,请使用defaultDate选项。它同时适用于瞬间和本地日期:

此外,还可以去掉dp.change事件处理程序,您不需要这些回调来设置默认日期。当然,除非您希望保持它们的链接,否则请使用dp.change,但使用日期函数,而不是setMinDate和setMaxDate:

如果您想将它们双向链接,请注意无限循环,使用不同的日期调用date将触发新的dp.change。虽然这不应该发生在您的设置中,但如果您稍微调整它,它可能会开始出现问题。

您是否尝试过以下方法: 要添加分钟数,请执行以下操作:

$('#Start').data("DateTimePicker").date(e.date.add(30, 'minutes'));
要增加小时数:

 $('#Start').data("DateTimePicker").date(e.date.add(4, 'hours'));
另外,通过下面的脚本,您可以比较开始日期和结束日期,如果它们相等或开始日期时间在结束日期时间之后,您可以根据用户选择的新日期时间再次设置默认日期时间,我始终在服务器端设置默认日期时间:

//Server side default setup for first run
Start = DateTime.Now;
End = DateTime.Now.AddMinutes(30);
下面是js脚本:

  <script type='text/javascript'>

        $(function()
        {         
         $('#Start').datetimepicker({
                            useCurrent: false //Important! See issue #1075
                        });
         $('#End').datetimepicker({
                            useCurrent: false //Important! See issue #1075
                        });
         $('#Start').on("dp.change",
                            function(e)
                            {
                                if (dateSorter($('#End').val(), $(this).val()) === -1 || dateSorter($('#End').val(), $(this).val()) === 0)
                                    // if ($('#End').val() < $(this).val())
                                {
                                 //   console.log("End date "+$('#End').val()+ " is before start date: "+ $(this).val());
                                    $('#End').data("DateTimePicker").date(e.date.add(30, 'minutes'));
                                }
                               // add your other scripts for example update something on the page, updateAvailableSeats();
                            });
      $('#End').on("dp.change",
                            function(e)
                            {
                                if (dateSorter($('#Start').val(), $(this).val()) === 1 || dateSorter($('#Start').val(), $(this).val()) === 0)
                                    // if ($('#Start').val() > $(this).val())
                                {
                                 //   console.log("Start date " + $('#Start').val() + " is after end date: " + $(this).val());
                                    $(this).data("DateTimePicker").date(e.date.add(30, 'minutes'));
                                }
                            });
      //  updateAvailableSeats();
    });
希望这有帮助。
谢谢

您好,当我们选择开始日期选择器时,此代码段对我不起作用。它将显示当前系统时间,在结束选择器中,它将自动向当前时间添加4小时,并显示问题询问的最大和最小日期。显示的日期时间与任何事情有什么关系?嗨,在添加代码段后,它们的输出没有变化,所以我的要求是假设我们必须首先使用日期时间选择器,我们有当前时间和日期默认值,在另一个我们需要在当前时间上添加4小时。第一个选取者2015年9月22日下午4:27,第二个选取者2015年9月22日下午8:27,我们需要,谢谢你的帮助OK,在答案中编辑。然而,你真的应该把它编辑成问题,因为它与原来的帖子无关。你也可以通读一遍,这对我来说也不管用,谢谢你,我会尝试以结构化的方式提问
 $('#Start').data("DateTimePicker").date(e.date.add(4, 'hours'));
//Server side default setup for first run
Start = DateTime.Now;
End = DateTime.Now.AddMinutes(30);
  <script type='text/javascript'>

        $(function()
        {         
         $('#Start').datetimepicker({
                            useCurrent: false //Important! See issue #1075
                        });
         $('#End').datetimepicker({
                            useCurrent: false //Important! See issue #1075
                        });
         $('#Start').on("dp.change",
                            function(e)
                            {
                                if (dateSorter($('#End').val(), $(this).val()) === -1 || dateSorter($('#End').val(), $(this).val()) === 0)
                                    // if ($('#End').val() < $(this).val())
                                {
                                 //   console.log("End date "+$('#End').val()+ " is before start date: "+ $(this).val());
                                    $('#End').data("DateTimePicker").date(e.date.add(30, 'minutes'));
                                }
                               // add your other scripts for example update something on the page, updateAvailableSeats();
                            });
      $('#End').on("dp.change",
                            function(e)
                            {
                                if (dateSorter($('#Start').val(), $(this).val()) === 1 || dateSorter($('#Start').val(), $(this).val()) === 0)
                                    // if ($('#Start').val() > $(this).val())
                                {
                                 //   console.log("Start date " + $('#Start').val() + " is after end date: " + $(this).val());
                                    $(this).data("DateTimePicker").date(e.date.add(30, 'minutes'));
                                }
                            });
      //  updateAvailableSeats();
    });