Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在当前时间的x小时之前停止提交表单(javascript/jquery)_Javascript_Jquery_Forms_Momentjs - Fatal编程技术网

在当前时间的x小时之前停止提交表单(javascript/jquery)

在当前时间的x小时之前停止提交表单(javascript/jquery),javascript,jquery,forms,momentjs,Javascript,Jquery,Forms,Momentjs,我有一个网站,有一个餐厅的预订表,店主不能在当前时间前6小时预订 有人知道我如何阻止在当前时间前6小时提交表单吗 我在下面发现了一个截图,它得到了当前时间减去6小时 感谢您的帮助-希望对其他人也有用 谢谢 马尔科姆 $(函数(){ //操纵 /* `add(key,value)`将指定的值添加到键中,键包括'years','months','weeks','days','hours','minutes','seconds'和'millizes'` `减法(键,值)`与加法(键,值)相同` `

我有一个网站,有一个餐厅的预订表,店主不能在当前时间前6小时预订

有人知道我如何阻止在当前时间前6小时提交表单吗

我在下面发现了一个截图,它得到了当前时间减去6小时

感谢您的帮助-希望对其他人也有用

谢谢 马尔科姆


$(函数(){
//操纵
/* 
`add(key,value)`将指定的值添加到键中,键包括'years','months','weeks','days','hours','minutes','seconds'和'millizes'`
`减法(键,值)`与加法(键,值)相同`
`startOf(key)`将当前时刻更改为key的开始,key包括'year','month','week','day','hour','minute','second`
`endOf(key)`将当前力矩更改为key的末尾。
*/ 
变量时间=力矩().endOf('minute')。减去('hours',6);
$('body').append(time.format('YYYY-MM-DD HH:MM:ss');
});

为了防止表单提交,您应该添加服务器端验证,它负责处理此逻辑


您可以阻止用户通过javascript提交表单,但是绕过客户端验证很容易,既不可靠也不是最佳实践。

在前端仅用javascript实现此逻辑可能不够,因为绕过此逻辑并直接向服务器发出请求很容易。我宁愿在服务器端而不是客户端工作,因为一个非常基本的操作可以在你的解决方案周围工作。你可以用纯javascript来做,但对某些人来说绕过它并不难。更确切地说,在条件允许的情况下,考虑使用服务器端方法。例如,让服务器设置时间,并让它检查时间是否与您需要的时间匹配,是否允许他们下订单,是否不禁用文本区域或您正在使用的任何内容。我同意Alex的观点-使用javascript验证将允许自动提交(即爬虫程序和机器人程序)。另一个问题是javascript使用用户的系统时间,这可能会有所不同,并且很容易通过时钟进行更改。。服务器端验证是最可靠的,将使用服务器的时间而不是用户的时间。
<html>
  <head>
    <script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    <script src="moment.min.js"></script>
    <script>
      $(function() {
        // manipulate
        /* 
          `add(key, value)` will add specified value to the key, key includes `years`, `months`, `weeks`, `days`, `hours`, `minutes`, `seconds` and `milliseconds`
          `subtract(key, value)` is the same as `add(key, -value)`

          `startOf(key)` will change current moment to the start of key, key includes `year`, `month`, `week`, `day`, `hour`, `minute`, `second`
          `endOf(key)` will change current moment to the end of key.
        */ 
        var time = moment().endOf('minute').subtract('hours', 6);
        $('body').append(time.format('YYYY-MM-DD HH:mm:ss'));
      });
    </script>
  </head>

  <body>

  </body>
</html>