【问题标题】:Fill HTML5 input field with current date + 14 days用当前日期 + 14 天填充 HTML5 输入字段
【发布时间】:2019-11-06 11:38:20
【问题描述】:

用户正在提交硬币,当他们提交时,我希望将日期加载到我用来跟踪提交时间的输入字段中。该日期将记录在 mySQL 数据库中。截止日期设置为即将到来的双月星期五(例如截止日期为6月14日和6月28日。如果今天提交,则截止日期为6月28日。如果提交是在6月30日完成,则截止日期日期是 7 月 12 日。我包含了整个表格,以便您了解更大的情况。请随时进行调整。非常感谢任何帮助。

我可以调用 javascript 函数并让用户从日历中选择日期,但这不是我需要的。 Javascript - get a date from an HTML input 但我不确定如何将 +14 天连接到下一个截止日期。

CoinSubmission.html

<form action="AdminCoinSub_Code.php" method="POST">
  <h1 id="litheader">Coin Submission</h1>
  <div class="inset">
           <input type="text" list="Store" name="Store" placeholder="Store">
        <datalist id="store">
          <option value="Causeway Bay">
          <option value="Wan Chai">
          <option value="Lai Chi Kok">
          <option value="Tai Po">
        </datalist>    
        <input type="text" list="Position" name="Position" placeholder="Position">
        <datalist id="position">
          <option value="1">
          <option value="2">
          <option value="3">
          <option value="4">
        </datalist>    
        <p>
      <input type="text" name="Nickame" id="Nickname" placeholder="Nickname">
    </p>
    <p>
      <input type="text" name="Contact" id="Contact" placeholder="Contact">
    </p>
    <p>
      <input type="text" name="MachineCount" id="Machine Count" placeholder="Machine Count">
    </p>
    <p>
  <input type="text" name="CutOffDate" id="CutOffDate" placeholder="Cut Off Date">
    </p>
    <p>
      <input type="text" name="Coins" id="Coins" placeholder="Coins">
    </p>
    <p>
        <input type="file" type="text" name="location" accept="image/*">
    <div class="btnConfirm">       
    <input class="loginLoginValue" type="hidden" name="" value="" />
    </div>
  </div>
    <div class="btnConfirm">
        <input type="submit" onclick="location.href='CoinSubmission.php';" name="Submit" value="Confirm">
    </div><br><br>
    <div class="wrapper2">
  <nav>
    <ul>
      <li><a href="AdminSubmission.php" class="active">SUBMISSION</a></li>
      <li><a href="OccupancyListAdmin.php">OCCUPANCY</a></li>
      <li><a href="#">ANALYTICS</a></li>
        <li><a href="#">SEARCH</a></li>
    </ul>
  </nav>
    </div>
    </form>

AdminCoinSub_Code.php

<?php {
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "administrator_logins";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // prepare sql and bind parameters
    $stmt = $conn->prepare("INSERT INTO admincoinsubmission (Store, Position, Nickname, Contact, MachineCount, CutOffDate, Coins, location) 
    VALUES ('$_POST[Store]','$_POST[Position]','$_POST[Nickame]','$_POST[Contact]','$_POST[MachineCount]','$_POST[CutOffDate]','$_POST[Coins]','$_POST[location]')");
    $stmt->bindParam(':Store', $Store);
    $stmt->bindParam(':Position', $Position);
    $stmt->bindParam(':Nickname', $Nickname);
    $stmt->bindParam(':Contact', $Contact);
    $stmt->bindParam(':MachineCount', $MachineCount);
    $stmt->bindParam(':CutOffDate', $CutOffDate);
    $stmt->bindParam(':Coins', $Coins);
    $stmt->bindParam(':location', $location);

    $stmt->execute();



    echo "Success";
    }
catch(PDOException $e)
    {
    echo "Error: " . $e->getMessage();
    }
$conn = null;
}
?>

When the page loads the date row in the coin submission form should display the cutoffdate. 

date = (current date + cutoffdate)

【问题讨论】:

  • 您仍然容易受到 sql 注入的影响。您需要将 :Store 而不是 $_POST[Store] 放入您的 sql 中。然后去掉绑定中的 ':"。
  • 您在执行 SQL 准备语句时出错了!在 SQL 中使用“:placeholder”(“:Store”、“:location”等),您所做的是将未经验证的 POST 数据注入到查询中

标签: php html date datetime


【解决方案1】:

您可以使用类似的代码来完成以下任务-

<!DOCTYPE html>
<html lang="en" dir="ltr">
    <head>
       <meta charset="utf-8">
       <title>Date +14 days</title>
    </head>
    <body>
        <input type="date" name="date1" id="date1" value="" />
        <input type="text" name="date2" id="date2" value="" />

        <script type="text/javascript">
            var date1 = document.getElementById("date1");
            date1.addEventListener('change', function(){
                tempDate = new Date(date1.value);
                finalDate = tempDate.setDate(tempDate.getDate() + 14);
                console.log(new Date(finalDate));
            });
       </script>
   </body>
</html>

【讨论】:

  • 如果假设是每个月的双周星期五,那么现在应该加载的日期将是 28 日。截止日期设置为即将到来的双月星期五(例如截止日期为6月14日和6月28日。如果今天提交,则截止日期为6月28日。如果提交是在6月30日完成,则截止日期日期是 7 月 12 日。
【解决方案2】:

要达到预期的效果,请使用以下选项添加时间与 getTime() 方法并添加 14 天

var currentDate = new Date(new Date().getTime()+(14*24*3600000))
document.getElementById('CutOffDate').value = (currentDate.getDate()) +'/' + (currentDate.getMonth()+1) +'/'+ currentDate.getFullYear()

工作代码示例供参考

var currentDate = new Date(new Date().getTime()+(14*24*3600000))
document.getElementById('CutOffDate').value = (currentDate.getDate()) +'/' + (currentDate.getMonth()+1) +'/'+ currentDate.getFullYear()
<form action="AdminCoinSub_Code.php" method="POST">
  <h1 id="litheader">Coin Submission</h1>
  <div class="inset">
           <input type="text" list="Store" name="Store" placeholder="Store">
        <datalist id="store">
          <option value="Causeway Bay">
          <option value="Wan Chai">
          <option value="Lai Chi Kok">
          <option value="Tai Po">
        </datalist>    
        <input type="text" list="Position" name="Position" placeholder="Position">
        <datalist id="position">
          <option value="1">
          <option value="2">
          <option value="3">
          <option value="4">
        </datalist>    
        <p>
      <input type="text" name="Nickame" id="Nickname" placeholder="Nickname">
    </p>
    <p>
      <input type="text" name="Contact" id="Contact" placeholder="Contact">
    </p>
    <p>
      <input type="text" name="MachineCount" id="Machine Count" placeholder="Machine Count">
    </p>
    <p>
  <input type="text" name="CutOffDate" id="CutOffDate" placeholder="Cut Off Date">
    </p>
    <p>
      <input type="text" name="Coins" id="Coins" placeholder="Coins">
    </p>
    <p>
        <input type="file" type="text" name="location" accept="image/*">
    <div class="btnConfirm">       
    <input class="loginLoginValue" type="hidden" name="" value="" />
    </div>
  </div>
    <div class="btnConfirm">
        <input type="submit" onclick="location.href='CoinSubmission.php';" name="Submit" value="Confirm">
    </div><br><br>
    <div class="wrapper2">
  <nav>
    <ul>
      <li><a href="AdminSubmission.php" class="active">SUBMISSION</a></li>
      <li><a href="OccupancyListAdmin.php">OCCUPANCY</a></li>
      <li><a href="#">ANALYTICS</a></li>
        <li><a href="#">SEARCH</a></li>
    </ul>
  </nav>
    </div>
    </form>

codepen - https://codepen.io/nagasai/pen/VJWmNE?editors=1010

【讨论】:

  • 如果假设是每个月的双周星期五,那么现在应该加载的日期将是 28 日。截止日期设置为即将到来的双月星期五(例如截止日期为6月14日和6月28日。如果今天提交,则截止日期为6月28日。如果提交是在6月30日完成,则截止日期日期是 7 月 12 日。
猜你喜欢
  • 2012-12-24
  • 2022-01-11
  • 1970-01-01
  • 2016-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-27
  • 1970-01-01
相关资源
最近更新 更多