【问题标题】:SQL date format is showing blank result (using jQuery e.g. 00-00-0000)SQL 日期格式显示空白结果(使用 jQuery,例如 00-00-0000)
【发布时间】:2018-06-08 08:20:33
【问题描述】:

calendar我正在使用 jQuery 创建一个日历,当我提交日期时,它存储在我的 SQL 表中,但结果为空白,例如而不是“09-07-2017”,它显示“00-00-0000”,有人可以帮助我吗?这是我的代码:

    Index.PHP:

    <!doctype html>
    <html lang="en">
    <head>
    <section class="main-container">
    <div class="main-wrapper"> 
    <form class="calendar-form" action="button.inc.php" method="POST">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
      <script>
      $( function() {
        $( "#datepicker" ).datepicker({
        dateFormat: "yy-mm-dd",


        } );
      } );
      </script>
    </head>
    <body>

    <p>Date: <input type="text" id="datepicker"></p>
     <button type="submit" name="submit">Check Availability</button>

    </body>
    </html>
    Button.Inc.PHP:

  <?php
if (isset($_POST['submit'])) {

    include_once 'database.inc.php';

    $date = mysqli_real_escape_string($conn, $_POST['datepicker']);


    $sql = "INSERT INTO system (date) VALUES ('$date');";
     $result = mysqli_query($conn, $sql);



}

?>
    Dbh.Inc.PHP:

<?php


$dbServername = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "calendar";

$conn = mysqli_connect ($dbServername,$dbUsername,$dbPassword,$dbName);

// Create connection
$conn = mysqli_connect($dbServername, $dbUsername, $dbPassword, $dbName);

// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

我不明白为什么它不起作用,SQL 和 jQuery 的格式是相同的,但由于某种原因 SQL 无法正确存储日期。

这是输出:

【问题讨论】:

标签: jquery mysql calendar


【解决方案1】:

MySQL 中的默认日期格式是 yyyy-mm-dd,而不是您在 jQuery DatePicker 中使用的 dd-mm-yy。您可以在将日期发送到数据库之前对其进行格式化,也可以使用 DatePicker 的 altField 功能提供如下替代格式:

<script>
    $( function() {
        $( "#datepicker" ).datepicker({
            dateFormat: "dd-mm-yy",
            altFormat: "yy-mm-dd",
            altField: "#mysql_date",
        });
    });
</script>

<form>
    <input type="hidden" id="mysql_date" name="mysql_date" />
    <p>Date: <input type="text" id="datepicker" name="datepicker" /></p>
    <button type="submit" name="submit">Check Availability</button>
</form>

注意:我添加了一个 &lt;form&gt;,因为我发现它在您的代码中丢失了,并且我还在 input 框中添加了 name 属性,因为它是正确提交表单所必需的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 2011-08-30
    • 2017-09-21
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多