【问题标题】:How to change date in jquery based on other date如何根据其他日期更改jquery中的日期
【发布时间】:2016-04-26 18:33:50
【问题描述】:

我有一个简单的 PHP FORM:

<form>
  Date of dispatch<br>
  <input type="datetime" name="date_dispatch" id="date_dispatch" value="2016-04-26 10:00:00"><br>
  Expected delivery timne<br>
  <input type="datetime" name="date_delivery" id="date_delivery">
  <br>
  <input type="submit" value="Submit">
</form>

用户可以指定第一个日期(领取包裹的时间),第二个字段应该是预计送达日期。但是交货时间不能早于夹取时间 3 小时。 如何使用 AJAX/JQUERY 将 date_delivery 的值更改为根据 date_dispatch +3 小时自动计算。

我正在尝试一些测试但没有结果:

$(document).ready(function(){

    $('#date_dispatch').change(function() {
    document.getElementById('date_delivery').value = 'test';
  });

});

这是我的测试小提琴: https://jsfiddle.net/xr7cm6w7/

将不胜感激任何帮助

【问题讨论】:

  • ajax 用于与服务器通信。你只想要javascript(可能jquery分层)。
  • 好的,谢谢你的澄清

标签: php jquery forms datetime


【解决方案1】:

您不需要使用 AJAX,只要您只想显示此值即可。 在第一个输入更改函数上使用 javascript Date 对象

here sth more about this

【讨论】:

    【解决方案2】:

    这是一个使用 jQUery 处理它的函数:

    $(document).ready(function(){
      $('#date_dispatch').change(function() {
        // Get current dispatch time
        var time = new Date($('#date_dispatch').val());
    
        // Add 3 hours
        time.setTime(time.setHours(time.getHours()+3));
    
        // Set delivery time
        $('#date_delivery').val(time.toString());
      });
    });
    

    这是 jsfiddle:https://jsfiddle.net/mewcg3zo/10/

    您会注意到格式不一样,您必须做一些额外的工作才能将日期字符串恢复为您想要的格式。您可以在此处查看有关如何执行此操作的一些提示。 Javascript format date / time

    【讨论】:

    • 您好,感谢您的贡献,但这不起作用,当我更改第一个日期时,我只能在第二个字段“无效日期”中看到文本,而不是日期(即使是其他日期格式)。还是这个需要先修改才能改日期?
    • 它可以工作,但有些事情您需要检查验证。空字符串、字母甚至只是像下午 1:00 这样的时间都不适用于此实现。
    • 我只是将一个小时:“2016-04-26 10:00:00”更改为例如“2016-04-26 11:00:00”,并且只能看到“无效日期” '
    • 在 jsfiddle 中对你有用吗?如果是这样,它必须是本地的东西。你用的是什么浏览器?
    • 我在 MacOS 上使用 Safari,这在 jfiddle 中不起作用。我也试过 Firefox - 一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 2021-07-25
    • 1970-01-01
    相关资源
    最近更新 更多